iPhoneHandle
1.2.91
OTRS AG
http://otrs.org/
GNU AFFERO GENERAL PUBLIC LICENSE Version 3, November 2007
First version for OTRS 3.3.x.
The iPhoneHandle Package.
Das iPhoneHandle Paket.
3.3.x
<br/>
<strong>WELCOME</strong>
<br/>
<br/>
You are about to install the OTRS package iPhoneHandle.<br/>
<br/>
<br/>
<b>ATTENTION</b>
<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>ATTENTION</strong>
<br/>
<br/>
If you uninstall this package, the iPhone app, will not be able to communicate with your server!
<br/>
<br/>
((enjoy))<br/>
<br/>
<br/>
<strong>WELCOME</strong>
<br/>
<br/>
You are about to upgrade the OTRS package iPhoneHandle.<br/>
<br/>
<br/>
((enjoy))<br/>
<br/>
# define function name
my $FunctionName = 'CodeInstall';
# create the package name
my $CodeModule = 'var::packagesetup::' . $Param{Structure}->{Name}->{Content};
# load the module
if ( $Self->{MainObject}->Require($CodeModule) ) {
# create new instance
my $CodeObject = $CodeModule->new( %{$Self} );
if ($CodeObject) {
# start method
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 = 'CodeUpgrade';
# create the package name
my $CodeModule = 'var::packagesetup::' . $Param{Structure}->{Name}->{Content};
# load the module
if ( $Self->{MainObject}->Require($CodeModule) ) {
# create new instance
my $CodeObject = $CodeModule->new( %{$Self} );
if ($CodeObject) {
# start method
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 = 'CodeUninstall';
# create the package name
my $CodeModule = 'var::packagesetup::' . $Param{Structure}->{Name}->{Content};
# load the module
if ( $Self->{MainObject}->Require($CodeModule) ) {
# create new instance
my $CodeObject = $CodeModule->new( %{$Self} );
if ($CodeObject) {
# start method
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 = 'CodeReinstall';
# create the package name
my $CodeModule = 'var::packagesetup::' . $Param{Structure}->{Name}->{Content};
# load the module
if ( $Self->{MainObject}->Require($CodeModule) ) {
# create new instance
my $CodeObject = $CodeModule->new( %{$Self} );
if ($CodeObject) {
# start method
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-09-25 00:17:53
opms.otrs.com
IyEvdXNyL2Jpbi9wZXJsCiMgLS0KIyBiaW4vY2dpLWJpbi9qc29uLnBsIC0ganNvbiBoYW5kbGUKIyBDb3B5cmlnaHQgKEMpIDIwMDEtMjAxMyBPVFJTIEFHLCBodHRwOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHByb2dyYW0gaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yIG1vZGlmeQojIGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEFGRkVSTyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCiMgYW55IGxhdGVyIHZlcnNpb24uCiMKIyBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKIyBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgojIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKIyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgojCiMgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEFmZmVybyBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgd3JpdGUgdG8gdGhlIEZyZWUgU29mdHdhcmUKIyBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgVVNBCiMgb3Igc2VlIGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9hZ3BsLnR4dC4KIyAtLQoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwoKIyB1c2UgLi4vLi4vIGFzIGxpYiBsb2NhdGlvbgp1c2UgRmluZEJpbiBxdygkQmluKTsKdXNlIGxpYiAiJEJpbi8uLi8uLiI7CnVzZSBsaWIgIiRCaW4vLi4vLi4vS2VybmVsL2NwYW4tbGliIjsKCiMgbG9hZCBpUGhvbmUgSGFuZGxlIHdlYiBpbnRlcmZhY2UKdXNlIEtlcm5lbDo6U3lzdGVtOjpXZWI6OkludGVyZmFjZWlQaG9uZUhhbmRsZSgpOwoKIyBjcmVhdGUgbmV3IG9iamVjdApteSAkSW50ZXJmYWNlID0gS2VybmVsOjpTeXN0ZW06OldlYjo6SW50ZXJmYWNlaVBob25lSGFuZGxlLT5uZXcoKTsKCiMgZXhlY3V0ZSBvYmplY3QKbXkgJFJlc3BvbnNlID0gJEludGVyZmFjZS0+UnVuKCk7CgpwcmludCAiQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBcbiI7CnByaW50ICJcbiI7CnByaW50ICRSZXNwb25zZTsKCjE7Cg==
PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iaXNvLTg4NTktMSI/Pgo8b3Ryc19jb25maWcgdmVyc2lvbj0iMS4wIiBpbml0PSJBcHBsaWNhdGlvbiI+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJpUGhvbmU6OkRlYnVnTG9nIiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkFsbG93cyB0byBlbmFibGUgYSBzcGVjaWFsIGxvZyBmb3IgYWxsIGNvbW11bmljYXRpb24gYmV0d2VlbiBpUGhvbmUgYW5kIG90cnMuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+aVBob25lSGFuZGxlPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+Q29yZTo6TG9nPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPE9wdGlvbiBTZWxlY3RlZElEPSIwIj4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMCI+Tm88L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjEiPlllczwvSXRlbT4KICAgICAgICAgICAgPC9PcHRpb24+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iaVBob25lOjpMb2dGaWxlIiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkRlZmluZXMgdGhlIHBhdGggYW5kIGZpbGUgbmFtZSBmb3IgdGhlIGRlYnVnIGxvZyBmaWxlLiBUaGlzIGZpbGUgd2lsbCBiZSBhdXRvbWF0aWNhbGx5IGNyZWF0ZWQgYnkgdGhlIHN5c3RlbSwgaWYgaXQgZG9lc24ndCBleGlzdC48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5pUGhvbmVIYW5kbGU8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Db3JlOjpMb2c8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8U3RyaW5nIFJlZ2V4PSIiPi90bXAvaVBob25lLmxvZzwvU3RyaW5nPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KCiAgICA8Q29uZmlnSXRlbSBOYW1lPSJpUGhvbmU6OkZyb250ZW5kOjpBZ2VudFRpY2tldFBob25lIyMjVGlja2V0VHlwZSIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5TZXRzIHRoZSB0aWNrZXQgdHlwZSBpbiB0aGUgbmV3IHBob25lIHRpY2tldCBzY3JlZW4gb24gdGhlIGlQaG9uZSBpbnRlcmZhY2UgKFRpY2tldDo6VHlwZSBuZWVkcyB0byBiZSBhY3RpdmF0ZWQpLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPmlQaG9uZUhhbmRsZTwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkZyb250ZW5kOjpBZ2VudDo6VGlja2V0OjpWaWV3UGhvbmU8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8T3B0aW9uIFNlbGVjdGVkSUQ9IjEiPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIwIj5ObzwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMSI+WWVzPC9JdGVtPgogICAgICAgICAgICA8L09wdGlvbj4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJpUGhvbmU6OkZyb250ZW5kOjpBZ2VudFRpY2tldFBob25lIyMjU2VydmljZSIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5TZXRzIHRoZSBzZXJ2aWNlIGluIHRoZSBuZXcgcGhvbmUgdGlja2V0IHNjcmVlbiBvZiB0aGUgaVBob25lIGludGVyZmFjZSAoVGlja2V0OjpTZXJ2aWNlIG5lZWRzIHRvIGJlIGFjdGl2YXRlZCkuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+aVBob25lSGFuZGxlPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+RnJvbnRlbmQ6OkFnZW50OjpUaWNrZXQ6OlZpZXdQaG9uZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxPcHRpb24gU2VsZWN0ZWRJRD0iMSI+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjAiPk5vPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIxIj5ZZXM8L0l0ZW0+CiAgICAgICAgICAgIDwvT3B0aW9uPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9ImlQaG9uZTo6RnJvbnRlbmQ6OkFnZW50VGlja2V0UGhvbmUjIyNPd25lciIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5TZXRzIHRoZSB0aWNrZXQgb3duZXIgaW4gdGhlIG5ldyBwaG9uZSB0aWNrZXQgc2NyZWVuIG9mIHRoZSBpUGhvbmUgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPmlQaG9uZUhhbmRsZTwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkZyb250ZW5kOjpBZ2VudDo6VGlja2V0OjpWaWV3UGhvbmU8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8T3B0aW9uIFNlbGVjdGVkSUQ9IjEiPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIwIj5ObzwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMSI+WWVzPC9JdGVtPgogICAgICAgICAgICA8L09wdGlvbj4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJpUGhvbmU6OkZyb250ZW5kOjpBZ2VudFRpY2tldFBob25lIyMjUmVzcG9uc2libGUiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+U2V0cyB0aGUgcmVzcG9uc2libGUgYWdlbnQgb2YgdGhlIHRpY2tldCBpbiB0aGUgbmV3IHBob25lIHRpY2tldCBzY3JlZW4gb2YgdGhlIGlQaG9uZSBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+aVBob25lSGFuZGxlPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+RnJvbnRlbmQ6OkFnZW50OjpUaWNrZXQ6OlZpZXdQaG9uZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxPcHRpb24gU2VsZWN0ZWRJRD0iMSI+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjAiPk5vPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIxIj5ZZXM8L0l0ZW0+CiAgICAgICAgICAgIDwvT3B0aW9uPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9ImlQaG9uZTo6RnJvbnRlbmQ6OkFnZW50VGlja2V0UGhvbmUjIyNDdXN0b21lcklEIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlNldHMgdGhlIGN1c3RvbWVyIGlkIGluIHRoZSBuZXcgcGhvbmUgdGlja2V0IHNjcmVlbiBvZiB0aGUgaVBob25lIGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5pUGhvbmVIYW5kbGU8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Gcm9udGVuZDo6QWdlbnQ6OlRpY2tldDo6Vmlld1Bob25lPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPE9wdGlvbiBTZWxlY3RlZElEPSIxIj4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMCI+Tm88L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjEiPlllczwvSXRlbT4KICAgICAgICAgICAgPC9PcHRpb24+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iaVBob25lOjpGcm9udGVuZDo6QWdlbnRUaWNrZXRQaG9uZSMjI1N0YXRlIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkFsbG93cyB0byBzZXQgYSBuZXcgdGlja2V0IHN0YXRlIGluIHRoZSBuZXcgcGhvbmUgdGlja2V0IHRpY2tldCBzY3JlZW4gb2YgdGhlIGlQaG9uZSBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+aVBob25lSGFuZGxlPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+RnJvbnRlbmQ6OkFnZW50OjpUaWNrZXQ6OlZpZXdQaG9uZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxPcHRpb24gU2VsZWN0ZWRJRD0iMSI+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjAiPk5vPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIxIj5ZZXM8L0l0ZW0+CiAgICAgICAgICAgIDwvT3B0aW9uPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9ImlQaG9uZTo6RnJvbnRlbmQ6OkFnZW50VGlja2V0UGhvbmUjIyNTdGF0ZURlZmF1bHQiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+U2V0cyB0aGUgZGVmYXVsdCBuZXh0IHN0YXRlIGZvciBuZXcgcGhvbmUgdGlja2V0cyBpbiB0aGUgaVBob25lIGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5pUGhvbmVIYW5kbGU8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Gcm9udGVuZDo6QWdlbnQ6OlRpY2tldDo6Vmlld1Bob25lPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPFN0cmluZyBSZWdleD0iIj5vcGVuPC9TdHJpbmc+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iaVBob25lOjpGcm9udGVuZDo6QWdlbnRUaWNrZXRQaG9uZSMjI1ByaW9yaXR5RGVmYXVsdCIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EZWZpbmVzIHRoZSBkZWZhdWx0IHRpY2tldCBwcmlvcml0eSBpbiB0aGUgbmV3IHBob25lIHRpY2tldCBzY3JlZW4gb2YgdGhlIGlQaG9uZSBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+aVBob25lSGFuZGxlPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+RnJvbnRlbmQ6OkFnZW50OjpUaWNrZXQ6OlZpZXdQaG9uZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxTdHJpbmcgUmVnZXg9IiI+MyBub3JtYWw8L1N0cmluZz4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJpUGhvbmU6OkZyb250ZW5kOjpBZ2VudFRpY2tldFBob25lIyMjQXJ0aWNsZVR5cGVEZWZhdWx0IiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkRlZmluZXMgdGhlIGRlZmF1bHQgdHlwZSBvZiB0aGUgdGlja2V0IGluIHRoZSBuZXcgcGhvbmUgdGlja2V0IHNjcmVlbiBvZiB0aGUgaVBob25lIGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5pUGhvbmVIYW5kbGU8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Gcm9udGVuZDo6QWdlbnQ6OlRpY2tldDo6Vmlld1Bob25lPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPFN0cmluZyBSZWdleD0iIj5waG9uZTwvU3RyaW5nPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9ImlQaG9uZTo6RnJvbnRlbmQ6OkFnZW50VGlja2V0UGhvbmUjIyNTZW5kZXJUeXBlIiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlNldHMgdGhlIGRlZmF1bHQgc2VuZGVyIHR5cGUgZm9yIG5ldyBwaG9uZSB0aWNrZXQgaW4gdGhlIGlQaG9uZSBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+aVBob25lSGFuZGxlPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+RnJvbnRlbmQ6OkFnZW50OjpUaWNrZXQ6OlZpZXdQaG9uZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxTdHJpbmcgUmVnZXg9IiI+Y3VzdG9tZXI8L1N0cmluZz4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJpUGhvbmU6OkZyb250ZW5kOjpBZ2VudFRpY2tldFBob25lIyMjVGltZVVuaXRzIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlNldHMgdGhlIHRpbWUgdW5pdHMgaW4gdGhlIG5ldyBwaG9uZSB0aWNrZXQgc2NyZWVuIG9mIHRoZSBpUGhvbmUgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPmlQaG9uZUhhbmRsZTwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkZyb250ZW5kOjpBZ2VudDo6VGlja2V0OjpWaWV3UGhvbmU8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8T3B0aW9uIFNlbGVjdGVkSUQ9IjEiPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIwIj5ObzwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMSI+WWVzPC9JdGVtPgogICAgICAgICAgICA8L09wdGlvbj4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iaVBob25lOjpGcm9udGVuZDo6QWdlbnRUaWNrZXRQaG9uZSMjI0hpc3RvcnlUeXBlIiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkRlZmluZXMgdGhlIGhpc3RvcnkgdHlwZSBmb3IgdGhlIG5ldyBwaG9uZSB0aWNrZXQgc2NyZWVuIGFjdGlvbiwgd2hpY2ggZ2V0cyB1c2VkIGZvciB0aWNrZXQgaGlzdG9yeSBpbiB0aGUgaVBob25lIGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5pUGhvbmVIYW5kbGU8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Gcm9udGVuZDo6QWdlbnQ6OlRpY2tldDo6Vmlld1Bob25lPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPFN0cmluZyBSZWdleD0iIj5QaG9uZUNhbGxDdXN0b21lcjwvU3RyaW5nPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9ImlQaG9uZTo6RnJvbnRlbmQ6OkFnZW50VGlja2V0UGhvbmUjIyNIaXN0b3J5Q29tbWVudCIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EZWZpbmVzIHRoZSBoaXN0b3J5IGNvbW1lbnQgZm9yIHRoZSBuZXcgcGhvbmUgdGlja2V0IHNjcmVlbiBhY3Rpb24sIHdoaWNoIGdldHMgdXNlZCBmb3IgdGlja2V0IGhpc3RvcnkgaW4gdGhlIGlQaG9uZSBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+aVBob25lSGFuZGxlPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+RnJvbnRlbmQ6OkFnZW50OjpUaWNrZXQ6OlZpZXdQaG9uZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxTdHJpbmcgUmVnZXg9IiI+PC9TdHJpbmc+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iaVBob25lOjpGcm9udGVuZDo6QWdlbnRUaWNrZXROb3RlIyMjUGVybWlzc2lvbiIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5SZXF1aXJlZCBwZXJtaXNzaW9ucyB0byB1c2UgdGhlIHRpY2tldCBub3RlIHNjcmVlbiBpbiB0aGUgaVBob25lIGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5pUGhvbmVIYW5kbGU8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Gcm9udGVuZDo6QWdlbnQ6OlRpY2tldDo6Vmlld05vdGU8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8U3RyaW5nIFJlZ2V4PSIiPm5vdGU8L1N0cmluZz4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJpUGhvbmU6OkZyb250ZW5kOjpBZ2VudFRpY2tldFBob25lIyMjRHluYW1pY0ZpZWxkIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkR5bmFtaWMgZmllbGRzIHNob3duIGluIHRoZSBuZXcgcGhvbmUgdGlja2V0IHNjcmVlbiBvZiB0aGUgaVBob25lIGludGVyZmFjZS4gUG9zc2libGUgc2V0dGluZ3M6IDAgPSBEaXNhYmxlZCwgMSA9IEVuYWJsZWQsIDIgPSBFbmFibGVkIGFuZCByZXF1aXJlZC48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5pUGhvbmVIYW5kbGU8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Gcm9udGVuZDo6QWdlbnQ6OlRpY2tldDo6Vmlld1Bob25lPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iaVBob25lOjpGcm9udGVuZDo6QWdlbnRUaWNrZXROb3RlIyMjUmVxdWlyZWRMb2NrIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkRlZmluZXMgaWYgYSB0aWNrZXQgbG9jayBpcyByZXF1aXJlZCBpbiB0aGUgdGlja2V0IG5vdGUgc2NyZWVuIG9mIHRoZSBpUGhvbmUgaW50ZXJmYWNlIChpZiB0aGUgdGlja2V0IGlzbid0IGxvY2tlZCB5ZXQsIHRoZSB0aWNrZXQgZ2V0cyBsb2NrZWQgYW5kIHRoZSBjdXJyZW50IGFnZW50IHdpbGwgYmUgc2V0IGF1dG9tYXRpY2FsbHkgYXMgaXRzIG93bmVyKS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5pUGhvbmVIYW5kbGU8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Gcm9udGVuZDo6QWdlbnQ6OlRpY2tldDo6Vmlld05vdGU8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8T3B0aW9uIFNlbGVjdGVkSUQ9IjAiPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIwIj5ObzwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMSI+WWVzPC9JdGVtPgogICAgICAgICAgICA8L09wdGlvbj4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJpUGhvbmU6OkZyb250ZW5kOjpBZ2VudFRpY2tldE5vdGUjIyNUaWNrZXRUeXBlIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlNldHMgdGhlIHRpY2tldCB0eXBlIGluIHRoZSB0aWNrZXQgbm90ZSBzY3JlZW4gb2YgdGhlIGlQaG9uZSBpbnRlcmZhY2UgKFRpY2tldDo6VHlwZSBuZWVkcyB0byBiZSBhY3RpdmF0ZWQpLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPmlQaG9uZUhhbmRsZTwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkZyb250ZW5kOjpBZ2VudDo6VGlja2V0OjpWaWV3Tm90ZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxPcHRpb24gU2VsZWN0ZWRJRD0iMCI+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjAiPk5vPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIxIj5ZZXM8L0l0ZW0+CiAgICAgICAgICAgIDwvT3B0aW9uPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KCiAgICA8Q29uZmlnSXRlbSBOYW1lPSJpUGhvbmU6OkZyb250ZW5kOjpBZ2VudFRpY2tldE5vdGUjIyNTZXJ2aWNlIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlNldHMgdGhlIHNlcnZpY2UgaW4gdGhlIHRpY2tldCBub3RlIHNjcmVlbiBvZiB0aGUgaVBob25lIGludGVyZmFjZSAoVGlja2V0OjpTZXJ2aWNlIG5lZWRzIHRvIGJlIGFjdGl2YXRlZCkuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+aVBob25lSGFuZGxlPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+RnJvbnRlbmQ6OkFnZW50OjpUaWNrZXQ6OlZpZXdOb3RlPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPE9wdGlvbiBTZWxlY3RlZElEPSIwIj4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMCI+Tm88L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjEiPlllczwvSXRlbT4KICAgICAgICAgICAgPC9PcHRpb24+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iaVBob25lOjpGcm9udGVuZDo6QWdlbnRUaWNrZXROb3RlIyMjT3duZXIiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+U2V0cyB0aGUgdGlja2V0IG93bmVyIGluIHRoZSB0aWNrZXQgbm90ZSBzY3JlZW4gb2YgdGhlIGlQaG9uZSBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+aVBob25lSGFuZGxlPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+RnJvbnRlbmQ6OkFnZW50OjpUaWNrZXQ6OlZpZXdOb3RlPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPE9wdGlvbiBTZWxlY3RlZElEPSIwIj4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMCI+Tm88L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjEiPlllczwvSXRlbT4KICAgICAgICAgICAgPC9PcHRpb24+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iaVBob25lOjpGcm9udGVuZDo6QWdlbnRUaWNrZXROb3RlIyMjUmVzcG9uc2libGUiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+U2V0cyB0aGUgcmVzcG9uc2libGUgYWdlbnQgb2YgdGhlIHRpY2tldCBpbiB0aGUgdGlja2V0IG5vdGUgc2NyZWVuIG9mIHRoZSBpUGhvbmUgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPmlQaG9uZUhhbmRsZTwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkZyb250ZW5kOjpBZ2VudDo6VGlja2V0OjpWaWV3Tm90ZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxPcHRpb24gU2VsZWN0ZWRJRD0iMCI+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjAiPk5vPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIxIj5ZZXM8L0l0ZW0+CiAgICAgICAgICAgIDwvT3B0aW9uPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9ImlQaG9uZTo6RnJvbnRlbmQ6OkFnZW50VGlja2V0Tm90ZSMjI1N0YXRlIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPklmIGEgbm90ZSBpcyBhZGRlZCBieSBhbiBhZ2VudCwgc2V0cyB0aGUgc3RhdGUgb2YgYSB0aWNrZXQgaW4gdGhlIHRpY2tldCBub3RlIHNjcmVlbiBvZiB0aGUgaVBob25lIGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5pUGhvbmVIYW5kbGU8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Gcm9udGVuZDo6QWdlbnQ6OlRpY2tldDo6Vmlld05vdGU8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8T3B0aW9uIFNlbGVjdGVkSUQ9IjAiPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIwIj5ObzwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMSI+WWVzPC9JdGVtPgogICAgICAgICAgICA8L09wdGlvbj4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJpUGhvbmU6OkZyb250ZW5kOjpBZ2VudFRpY2tldE5vdGUjIyNTdGF0ZVR5cGUiIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RGVmaW5lcyB0aGUgbmV4dCBzdGF0ZSBvZiBhIHRpY2tldCBhZnRlciBhZGRpbmcgYSBub3RlLCBpbiB0aGUgdGlja2V0IG5vdGUgc2NyZWVuIG9mIHRoZSBpUGhvbmUgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPmlQaG9uZUhhbmRsZTwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkZyb250ZW5kOjpBZ2VudDo6VGlja2V0OjpWaWV3Tm90ZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgIDxJdGVtPm9wZW48L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbT5jbG9zZWQ8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbT5wZW5kaW5nIHJlbWluZGVyPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0+cGVuZGluZyBhdXRvPC9JdGVtPgogICAgICAgICAgICA8L0FycmF5PgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9ImlQaG9uZTo6RnJvbnRlbmQ6OkFnZW50VGlja2V0Tm90ZSMjI1N0YXRlRGVmYXVsdCIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIwIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EZWZpbmVzIHRoZSBkZWZhdWx0IG5leHQgc3RhdGUgb2YgYSB0aWNrZXQgYWZ0ZXIgYWRkaW5nIGEgbm90ZSwgaW4gdGhlIHRpY2tldCBub3RlIHNjcmVlbiBvZiB0aGUgaVBob25lIGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5pUGhvbmVIYW5kbGU8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Gcm9udGVuZDo6QWdlbnQ6OlRpY2tldDo6Vmlld05vdGU8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8U3RyaW5nIFJlZ2V4PSIiPm9wZW48L1N0cmluZz4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJpUGhvbmU6OkZyb250ZW5kOjpBZ2VudFRpY2tldE5vdGUjIyNOb3RlIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkFsbG93cyBhZGRpbmcgbm90ZXMgaW4gdGhlIHRpY2tldCBub3RlIHNjcmVlbiBvZiB0aGUgaVBob25lIGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5pUGhvbmVIYW5kbGU8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Gcm9udGVuZDo6QWdlbnQ6OlRpY2tldDo6Vmlld05vdGU8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8T3B0aW9uIFNlbGVjdGVkSUQ9IjEiPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIwIj5ObzwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMSI+WWVzPC9JdGVtPgogICAgICAgICAgICA8L09wdGlvbj4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJpUGhvbmU6OkZyb250ZW5kOjpBZ2VudFRpY2tldE5vdGUjIyNTdWJqZWN0IiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlNldHMgdGhlIGRlZmF1bHQgc3ViamVjdCBmb3Igbm90ZXMgYWRkZWQgaW4gdGhlIHRpY2tldCBub3RlIHNjcmVlbiBvZiB0aGUgaVBob25lIGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5pUGhvbmVIYW5kbGU8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Gcm9udGVuZDo6QWdlbnQ6OlRpY2tldDo6Vmlld05vdGU8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8U3RyaW5nIFJlZ2V4PSIiPk5vdGU8L1N0cmluZz4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJpUGhvbmU6OkZyb250ZW5kOjpBZ2VudFRpY2tldE5vdGUjIyNCb2R5IiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlNldHMgdGhlIGRlZmF1bHQgYm9keSB0ZXh0IGZvciBub3RlcyBhZGRlZCBpbiB0aGUgdGlja2V0IG5vdGUgc2NyZWVuIG9mIHRoZSBpUGhvbmUgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPmlQaG9uZUhhbmRsZTwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkZyb250ZW5kOjpBZ2VudDo6VGlja2V0OjpWaWV3Tm90ZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxUZXh0QXJlYT48L1RleHRBcmVhPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9ImlQaG9uZTo6RnJvbnRlbmQ6OkFnZW50VGlja2V0Tm90ZSMjI0FydGljbGVUeXBlRGVmYXVsdCIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EZWZpbmVzIHRoZSBkZWZhdWx0IHR5cGUgb2YgdGhlIG5vdGUgaW4gdGhlIHRpY2tldCBub3RlIHNjcmVlbiBvZiB0aGUgaVBob25lIGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5pUGhvbmVIYW5kbGU8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Gcm9udGVuZDo6QWdlbnQ6OlRpY2tldDo6Vmlld05vdGU8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8U3RyaW5nIFJlZ2V4PSIiPm5vdGUtaW50ZXJuYWw8L1N0cmluZz4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJpUGhvbmU6OkZyb250ZW5kOjpBZ2VudFRpY2tldE5vdGUjIyNBcnRpY2xlVHlwZXMiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+U3BlY2lmeSB0aGUgZGlmZmVyZW50IG5vdGUgdHlwZXMsIHRoYXQgeW91IHdhbnQgdG8gdXNlIGluIHlvdXIgc3lzdGVtLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPmlQaG9uZUhhbmRsZTwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkZyb250ZW5kOjpBZ2VudDo6VGlja2V0OjpWaWV3Tm90ZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJub3RlLWludGVybmFsIj4xPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJub3RlLWV4dGVybmFsIj4xPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJub3RlLXJlcG9ydCI+MDwvSXRlbT4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9ImlQaG9uZTo6RnJvbnRlbmQ6OkFnZW50VGlja2V0Tm90ZSMjI1ByaW9yaXR5IiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjAiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlNob3dzIHRoZSB0aWNrZXQgcHJpb3JpdHkgb3B0aW9ucyBpbiB0aGUgdGlja2V0IG5vdGUgc2NyZWVuIG9mIHRoZSBpUGhvbmUgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPmlQaG9uZUhhbmRsZTwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkZyb250ZW5kOjpBZ2VudDo6VGlja2V0OjpWaWV3Tm90ZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxPcHRpb24gU2VsZWN0ZWRJRD0iMCI+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjAiPk5vPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIxIj5ZZXM8L0l0ZW0+CiAgICAgICAgICAgIDwvT3B0aW9uPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9ImlQaG9uZTo6RnJvbnRlbmQ6OkFnZW50VGlja2V0Tm90ZSMjI1ByaW9yaXR5RGVmYXVsdCIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIwIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EZWZpbmVzIHRoZSBkZWZhdWx0IHRpY2tldCBwcmlvcml0eSBpbiB0aGUgdGlja2V0IG5vdGUgc2NyZWVuIG9mIHRoZSBpUGhvbmUgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPmlQaG9uZUhhbmRsZTwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkZyb250ZW5kOjpBZ2VudDo6VGlja2V0OjpWaWV3Tm90ZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxTdHJpbmcgUmVnZXg9IiI+MyBub3JtYWw8L1N0cmluZz4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJpUGhvbmU6OkZyb250ZW5kOjpBZ2VudFRpY2tldE5vdGUjIyNUaXRsZSIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5TaG93cyB0aGUgdGl0bGUgZmllbGRzIGluIHRoZSB0aWNrZXQgbm90ZSBzY3JlZW4gb2YgdGhlIGlwaG9uZSBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+aVBob25lSGFuZGxlPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+RnJvbnRlbmQ6OkFnZW50OjpUaWNrZXQ6OlZpZXdOb3RlPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPE9wdGlvbiBTZWxlY3RlZElEPSIwIj4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMCI+Tm88L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjEiPlllczwvSXRlbT4KICAgICAgICAgICAgPC9PcHRpb24+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iaVBob25lOjpGcm9udGVuZDo6QWdlbnRUaWNrZXROb3RlIyMjVGltZVVuaXRzIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlNldHMgdGhlIHRpbWUgdW5pdHMgaW4gdGhlIHRpY2tldCBub3RlIHNjcmVlbiBvZiB0aGUgaVBob25lIGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5pUGhvbmVIYW5kbGU8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Gcm9udGVuZDo6QWdlbnQ6OlRpY2tldDo6Vmlld05vdGU8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8T3B0aW9uIFNlbGVjdGVkSUQ9IjEiPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIwIj5ObzwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMSI+WWVzPC9JdGVtPgogICAgICAgICAgICA8L09wdGlvbj4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJpUGhvbmU6OkZyb250ZW5kOjpBZ2VudFRpY2tldE5vdGUjIyNIaXN0b3J5VHlwZSIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EZWZpbmVzIHRoZSBoaXN0b3J5IHR5cGUgZm9yIHRoZSB0aWNrZXQgbm90ZSBzY3JlZW4gYWN0aW9uLCB3aGljaCBnZXRzIHVzZWQgZm9yIHRpY2tldCBoaXN0b3J5IGluIHRoZSBpUGhvbmUgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPmlQaG9uZUhhbmRsZTwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkZyb250ZW5kOjpBZ2VudDo6VGlja2V0OjpWaWV3Tm90ZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxTdHJpbmcgUmVnZXg9IiI+QWRkTm90ZTwvU3RyaW5nPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9ImlQaG9uZTo6RnJvbnRlbmQ6OkFnZW50VGlja2V0Tm90ZSMjI0hpc3RvcnlDb21tZW50IiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkRlZmluZXMgdGhlIGhpc3RvcnkgY29tbWVudCBmb3IgdGhlIHRpY2tldCBub3RlIHNjcmVlbiBhY3Rpb24sIHdoaWNoIGdldHMgdXNlZCBmb3IgdGlja2V0IGhpc3RvcnkgaW4gdGhlIGlQaG9uZSBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+aVBob25lSGFuZGxlPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+RnJvbnRlbmQ6OkFnZW50OjpUaWNrZXQ6OlZpZXdOb3RlPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPFN0cmluZyBSZWdleD0iIj4lJU5vdGU8L1N0cmluZz4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJpUGhvbmU6OkZyb250ZW5kOjpBZ2VudFRpY2tldE5vdGUjIyNEeW5hbWljRmllbGQiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIHRpY2tldCBub3RlIHNjcmVlbiBvZiB0aGUgaVBob25lIGludGVyZmFjZS4gUG9zc2libGUgc2V0dGluZ3M6IDAgPSBEaXNhYmxlZCwgMSA9IEVuYWJsZWQsIDIgPSBFbmFibGVkIGFuZCByZXF1aXJlZC48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5pUGhvbmVIYW5kbGU8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Gcm9udGVuZDo6QWdlbnQ6OlRpY2tldDo6Vmlld05vdGU8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KCiAgICA8Q29uZmlnSXRlbSBOYW1lPSJpUGhvbmU6OkZyb250ZW5kOjpBZ2VudFRpY2tldENsb3NlIyMjUGVybWlzc2lvbiIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5SZXF1aXJlZCBwZXJtaXNzaW9ucyB0byB1c2UgdGhlIGNsb3NlIHRpY2tldCBzY3JlZW4gaW4gdGhlIGlQaG9uZSBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+aVBob25lSGFuZGxlPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+RnJvbnRlbmQ6OkFnZW50OjpUaWNrZXQ6OlZpZXdDbG9zZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxTdHJpbmcgUmVnZXg9IiI+Y2xvc2U8L1N0cmluZz4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJpUGhvbmU6OkZyb250ZW5kOjpBZ2VudFRpY2tldENsb3NlIyMjUmVxdWlyZWRMb2NrIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkRlZmluZXMgaWYgYSB0aWNrZXQgbG9jayBpcyByZXF1aXJlZCBpbiB0aGUgY2xvc2UgdGlja2V0IHNjcmVlbiBvZiB0aGUgaVBob25lIGludGVyZmFjZSAoaWYgdGhlIHRpY2tldCBpc24ndCBsb2NrZWQgeWV0LCB0aGUgdGlja2V0IGdldHMgbG9ja2VkIGFuZCB0aGUgY3VycmVudCBhZ2VudCB3aWxsIGJlIHNldCBhdXRvbWF0aWNhbGx5IGFzIGl0cyBvd25lcikuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+aVBob25lSGFuZGxlPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+RnJvbnRlbmQ6OkFnZW50OjpUaWNrZXQ6OlZpZXdDbG9zZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxPcHRpb24gU2VsZWN0ZWRJRD0iMSI+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjAiPk5vPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIxIj5ZZXM8L0l0ZW0+CiAgICAgICAgICAgIDwvT3B0aW9uPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9ImlQaG9uZTo6RnJvbnRlbmQ6OkFnZW50VGlja2V0Q2xvc2UjIyNUaWNrZXRUeXBlIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlNldHMgdGhlIHRpY2tldCB0eXBlIGluIHRoZSBjbG9zZSB0aWNrZXQgc2NyZWVuIG9mIHRoZSBpUGhvbmUgaW50ZXJmYWNlIChUaWNrZXQ6OlR5cGUgbmVlZHMgdG8gYmUgYWN0aXZhdGVkKS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5pUGhvbmVIYW5kbGU8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Gcm9udGVuZDo6QWdlbnQ6OlRpY2tldDo6Vmlld0Nsb3NlPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPE9wdGlvbiBTZWxlY3RlZElEPSIwIj4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMCI+Tm88L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjEiPlllczwvSXRlbT4KICAgICAgICAgICAgPC9PcHRpb24+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iaVBob25lOjpGcm9udGVuZDo6QWdlbnRUaWNrZXRDbG9zZSMjI1NlcnZpY2UiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+U2V0cyB0aGUgc2VydmljZSBpbiB0aGUgY2xvc2UgdGlja2V0IHNjcmVlbiBvZiB0aGUgaVBob25lIGludGVyZmFjZSAoVGlja2V0OjpTZXJ2aWNlIG5lZWRzIHRvIGJlIGFjdGl2YXRlZCkuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+aVBob25lSGFuZGxlPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+RnJvbnRlbmQ6OkFnZW50OjpUaWNrZXQ6OlZpZXdDbG9zZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxPcHRpb24gU2VsZWN0ZWRJRD0iMCI+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjAiPk5vPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIxIj5ZZXM8L0l0ZW0+CiAgICAgICAgICAgIDwvT3B0aW9uPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9ImlQaG9uZTo6RnJvbnRlbmQ6OkFnZW50VGlja2V0Q2xvc2UjIyNPd25lciIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5TZXRzIHRoZSB0aWNrZXQgb3duZXIgaW4gdGhlIGNsb3NlIHRpY2tldCBzY3JlZW4gb2YgdGhlIGlQaG9uZSBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+aVBob25lSGFuZGxlPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+RnJvbnRlbmQ6OkFnZW50OjpUaWNrZXQ6OlZpZXdDbG9zZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxPcHRpb24gU2VsZWN0ZWRJRD0iMCI+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjAiPk5vPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIxIj5ZZXM8L0l0ZW0+CiAgICAgICAgICAgIDwvT3B0aW9uPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9ImlQaG9uZTo6RnJvbnRlbmQ6OkFnZW50VGlja2V0Q2xvc2UjIyNSZXNwb25zaWJsZSIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5TZXRzIHRoZSByZXNwb25zaWJsZSBhZ2VudCBvZiB0aGUgdGlja2V0IGluIHRoZSBjbG9zZSB0aWNrZXQgc2NyZWVuIG9mIHRoZSBpUGhvbmUgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPmlQaG9uZUhhbmRsZTwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkZyb250ZW5kOjpBZ2VudDo6VGlja2V0OjpWaWV3Q2xvc2U8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8T3B0aW9uIFNlbGVjdGVkSUQ9IjAiPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIwIj5ObzwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMSI+WWVzPC9JdGVtPgogICAgICAgICAgICA8L09wdGlvbj4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJpUGhvbmU6OkZyb250ZW5kOjpBZ2VudFRpY2tldENsb3NlIyMjU3RhdGUiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+SWYgYSBub3RlIGlzIGFkZGVkIGJ5IGFuIGFnZW50LCBzZXRzIHRoZSBzdGF0ZSBvZiBhIHRpY2tldCBpbiB0aGUgY2xvc2UgdGlja2V0IHNjcmVlbiBvZiB0aGUgaVBob25lIGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5pUGhvbmVIYW5kbGU8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Gcm9udGVuZDo6QWdlbnQ6OlRpY2tldDo6Vmlld0Nsb3NlPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPE9wdGlvbiBTZWxlY3RlZElEPSIxIj4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMCI+Tm88L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjEiPlllczwvSXRlbT4KICAgICAgICAgICAgPC9PcHRpb24+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iaVBob25lOjpGcm9udGVuZDo6QWdlbnRUaWNrZXRDbG9zZSMjI1N0YXRlVHlwZSIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EZWZpbmVzIHRoZSBuZXh0IHN0YXRlIG9mIGEgdGlja2V0IGFmdGVyIGFkZGluZyBhIG5vdGUsIGluIHRoZSBjbG9zZSB0aWNrZXQgc2NyZWVuIG9mIHRoZSBpUGhvbmUgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPmlQaG9uZUhhbmRsZTwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkZyb250ZW5kOjpBZ2VudDo6VGlja2V0OjpWaWV3Q2xvc2U8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8QXJyYXk+CiAgICAgICAgICAgICAgICA8SXRlbT5jbG9zZWQ8L0l0ZW0+CiAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iaVBob25lOjpGcm9udGVuZDo6QWdlbnRUaWNrZXRDbG9zZSMjI1N0YXRlRGVmYXVsdCIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EZWZpbmVzIHRoZSBkZWZhdWx0IG5leHQgc3RhdGUgb2YgYSB0aWNrZXQgYWZ0ZXIgYWRkaW5nIGEgbm90ZSwgaW4gdGhlIGNsb3NlIHRpY2tldCBzY3JlZW4gb2YgdGhlIGlQaG9uZSBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+aVBob25lSGFuZGxlPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+RnJvbnRlbmQ6OkFnZW50OjpUaWNrZXQ6OlZpZXdDbG9zZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxTdHJpbmcgUmVnZXg9IiI+Y2xvc2VkIHN1Y2Nlc3NmdWw8L1N0cmluZz4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJpUGhvbmU6OkZyb250ZW5kOjpBZ2VudFRpY2tldENsb3NlIyMjTm90ZSIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5BbGxvd3MgYWRkaW5nIG5vdGVzIGluIHRoZSBjbG9zZSB0aWNrZXQgc2NyZWVuIG9mIHRoZSBpUGhvbmUgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPmlQaG9uZUhhbmRsZTwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkZyb250ZW5kOjpBZ2VudDo6VGlja2V0OjpWaWV3Q2xvc2U8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8T3B0aW9uIFNlbGVjdGVkSUQ9IjEiPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIwIj5ObzwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMSI+WWVzPC9JdGVtPgogICAgICAgICAgICA8L09wdGlvbj4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJpUGhvbmU6OkZyb250ZW5kOjpBZ2VudFRpY2tldENsb3NlIyMjU3ViamVjdCIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5TZXRzIHRoZSBkZWZhdWx0IHN1YmplY3QgZm9yIG5vdGVzIGFkZGVkIGluIHRoZSBjbG9zZSB0aWNrZXQgc2NyZWVuIG9mIHRoZSBpUGhvbmUgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPmlQaG9uZUhhbmRsZTwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkZyb250ZW5kOjpBZ2VudDo6VGlja2V0OjpWaWV3Q2xvc2U8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8U3RyaW5nIFJlZ2V4PSIiPkNsb3NlPC9TdHJpbmc+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iaVBob25lOjpGcm9udGVuZDo6QWdlbnRUaWNrZXRDbG9zZSMjI0JvZHkiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+U2V0cyB0aGUgZGVmYXVsdCBib2R5IHRleHQgZm9yIG5vdGVzIGFkZGVkIGluIHRoZSBjbG9zZSB0aWNrZXQgc2NyZWVuIG9mIHRoZSBpUGhvbmUgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPmlQaG9uZUhhbmRsZTwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkZyb250ZW5kOjpBZ2VudDo6VGlja2V0OjpWaWV3Q2xvc2U8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8VGV4dEFyZWE+PC9UZXh0QXJlYT4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJpUGhvbmU6OkZyb250ZW5kOjpBZ2VudFRpY2tldENsb3NlIyMjQXJ0aWNsZVR5cGVEZWZhdWx0IiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkRlZmluZXMgdGhlIGRlZmF1bHQgdHlwZSBvZiB0aGUgbm90ZSBpbiB0aGUgY2xvc2UgdGlja2V0IHNjcmVlbiBvZiB0aGUgaVBob25lIGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5pUGhvbmVIYW5kbGU8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Gcm9udGVuZDo6QWdlbnQ6OlRpY2tldDo6Vmlld0Nsb3NlPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPFN0cmluZyBSZWdleD0iIj5ub3RlLWludGVybmFsPC9TdHJpbmc+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iaVBob25lOjpGcm9udGVuZDo6QWdlbnRUaWNrZXRDbG9zZSMjI0FydGljbGVUeXBlcyIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5TcGVjaWZpZXMgdGhlIGRpZmZlcmVudCBub3RlIHR5cGVzIHRoYXQgd2lsbCBiZSB1c2VkIGluIHRoZSBzeXN0ZW0uPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+aVBob25lSGFuZGxlPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+RnJvbnRlbmQ6OkFnZW50OjpUaWNrZXQ6OlZpZXdDbG9zZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJub3RlLWludGVybmFsIj4xPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJub3RlLWV4dGVybmFsIj4wPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJub3RlLXJlcG9ydCI+MDwvSXRlbT4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9ImlQaG9uZTo6RnJvbnRlbmQ6OkFnZW50VGlja2V0Q2xvc2UjIyNQcmlvcml0eSIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIwIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5TaG93cyB0aGUgdGlja2V0IHByaW9yaXR5IG9wdGlvbnMgaW4gdGhlIGNsb3NlIHRpY2tldCBzY3JlZW4gb2YgdGhlIGlQaG9uZSBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+aVBob25lSGFuZGxlPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+RnJvbnRlbmQ6OkFnZW50OjpUaWNrZXQ6OlZpZXdDbG9zZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxPcHRpb24gU2VsZWN0ZWRJRD0iMCI+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjAiPk5vPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIxIj5ZZXM8L0l0ZW0+CiAgICAgICAgICAgIDwvT3B0aW9uPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9ImlQaG9uZTo6RnJvbnRlbmQ6OkFnZW50VGlja2V0Q2xvc2UjIyNQcmlvcml0eURlZmF1bHQiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMCI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RGVmaW5lcyB0aGUgZGVmYXVsdCB0aWNrZXQgcHJpb3JpdHkgaW4gdGhlIGNsb3NlIHRpY2tldCBzY3JlZW4gb2YgdGhlIGlQaG9uZSBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+aVBob25lSGFuZGxlPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+RnJvbnRlbmQ6OkFnZW50OjpUaWNrZXQ6OlZpZXdDbG9zZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxTdHJpbmcgUmVnZXg9IiI+MyBub3JtYWw8L1N0cmluZz4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJpUGhvbmU6OkZyb250ZW5kOjpBZ2VudFRpY2tldENsb3NlIyMjVGl0bGUiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+U2hvd3MgdGhlIHRpdGxlIGZpZWxkcyBpbiB0aGUgY2xvc2UgdGlja2V0IHNjcmVlbiBvZiB0aGUgaVBob25lIGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5pUGhvbmVIYW5kbGU8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Gcm9udGVuZDo6QWdlbnQ6OlRpY2tldDo6Vmlld0Nsb3NlPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPE9wdGlvbiBTZWxlY3RlZElEPSIwIj4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMCI+Tm88L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjEiPlllczwvSXRlbT4KICAgICAgICAgICAgPC9PcHRpb24+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iaVBob25lOjpGcm9udGVuZDo6QWdlbnRUaWNrZXRDbG9zZSMjI1RpbWVVbml0cyIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5TZXRzIHRoZSB0aW1lIHVuaXRzIGluIHRoZSBjbG9zZSB0aWNrZXQgc2NyZWVuIG9mIHRoZSBpUGhvbmUgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPmlQaG9uZUhhbmRsZTwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkZyb250ZW5kOjpBZ2VudDo6VGlja2V0OjpWaWV3Q2xvc2U8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8T3B0aW9uIFNlbGVjdGVkSUQ9IjEiPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIwIj5ObzwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMSI+WWVzPC9JdGVtPgogICAgICAgICAgICA8L09wdGlvbj4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJpUGhvbmU6OkZyb250ZW5kOjpBZ2VudFRpY2tldENsb3NlIyMjSGlzdG9yeVR5cGUiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RGVmaW5lcyB0aGUgaGlzdG9yeSB0eXBlIGZvciB0aGUgY2xvc2UgdGlja2V0IHNjcmVlbiBhY3Rpb24sIHdoaWNoIGdldHMgdXNlZCBmb3IgdGlja2V0IGhpc3RvcnkgaW4gdGhlIGlQaG9uZSBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+aVBob25lSGFuZGxlPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+RnJvbnRlbmQ6OkFnZW50OjpUaWNrZXQ6OlZpZXdDbG9zZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxTdHJpbmcgUmVnZXg9IiI+QWRkTm90ZTwvU3RyaW5nPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9ImlQaG9uZTo6RnJvbnRlbmQ6OkFnZW50VGlja2V0Q2xvc2UjIyNIaXN0b3J5Q29tbWVudCIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EZWZpbmVzIHRoZSBoaXN0b3J5IGNvbW1lbnQgZm9yIHRoZSBjbG9zZSB0aWNrZXQgc2NyZWVuIGFjdGlvbiwgd2hpY2ggZ2V0cyB1c2VkIGZvciB0aWNrZXQgaGlzdG9yeSBpbiB0aGUgaVBob25lIGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5pUGhvbmVIYW5kbGU8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Gcm9udGVuZDo6QWdlbnQ6OlRpY2tldDo6Vmlld0Nsb3NlPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPFN0cmluZyBSZWdleD0iIj4lJUNsb3NlPC9TdHJpbmc+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iaVBob25lOjpGcm9udGVuZDo6QWdlbnRUaWNrZXRDbG9zZSMjI0R5bmFtaWNGaWVsZCIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgdGlja2V0IGNsb3NlIHNjcmVlbiBvZiB0aGUgaVBob25lIGludGVyZmFjZS4gUG9zc2libGUgc2V0dGluZ3M6IDAgPSBEaXNhYmxlZCwgMSA9IEVuYWJsZWQsIDIgPSBFbmFibGVkIGFuZCByZXF1aXJlZC48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5pUGhvbmVIYW5kbGU8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Gcm9udGVuZDo6QWdlbnQ6OlRpY2tldDo6Vmlld0Nsb3NlPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iaVBob25lOjpGcm9udGVuZDo6QWdlbnRUaWNrZXRDb21wb3NlIyMjUGVybWlzc2lvbiIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5SZXF1aXJlZCBwZXJtaXNzaW9ucyB0byB1c2UgdGhlIHRpY2tldCBjb21wb3NlIHNjcmVlbiBpbiB0aGUgaVBob25lIGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5pUGhvbmVIYW5kbGU8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Gcm9udGVuZDo6QWdlbnQ6OlRpY2tldDo6Vmlld0NvbXBvc2U8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8U3RyaW5nIFJlZ2V4PSIiPmNvbXBvc2U8L1N0cmluZz4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJpUGhvbmU6OkZyb250ZW5kOjpBZ2VudFRpY2tldENvbXBvc2UjIyNSZXF1aXJlZExvY2siIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RGVmaW5lcyBpZiBhIHRpY2tldCBsb2NrIGlzIHJlcXVpcmVkIGluIHRoZSB0aWNrZXQgY29tcG9zZSBzY3JlZW4gb2YgdGhlIGlQaG9uZSBpbnRlcmZhY2UgKGlmIHRoZSB0aWNrZXQgaXNuJ3QgbG9ja2VkIHlldCwgdGhlIHRpY2tldCBnZXRzIGxvY2tlZCBhbmQgdGhlIGN1cnJlbnQgYWdlbnQgd2lsbCBiZSBzZXQgYXV0b21hdGljYWxseSBhcyBpdHMgb3duZXIpLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPmlQaG9uZUhhbmRsZTwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkZyb250ZW5kOjpBZ2VudDo6VGlja2V0OjpWaWV3Q29tcG9zZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxPcHRpb24gU2VsZWN0ZWRJRD0iMSI+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjAiPk5vPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIxIj5ZZXM8L0l0ZW0+CiAgICAgICAgICAgIDwvT3B0aW9uPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9ImlQaG9uZTo6RnJvbnRlbmQ6OkFnZW50VGlja2V0Q29tcG9zZSMjI1N0YXRlIiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPklmIGEgbm90ZSBpcyBhZGRlZCBieSBhbiBhZ2VudCwgc2V0cyB0aGUgc3RhdGUgb2YgYSB0aWNrZXQgaWYgaXQgaXMgY29tcG9zZWQgLyBhbnN3ZXJlZCBpbiB0aGUgdGlja2V0IGNvbXBvc2Ugc2NyZWVuIG9mIHRoZSBpUGhvbmUgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPmlQaG9uZUhhbmRsZTwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkZyb250ZW5kOjpBZ2VudDo6VGlja2V0OjpWaWV3Q29tcG9zZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxPcHRpb24gU2VsZWN0ZWRJRD0iMSI+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjAiPk5vPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIxIj5ZZXM8L0l0ZW0+CiAgICAgICAgICAgIDwvT3B0aW9uPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9ImlQaG9uZTo6RnJvbnRlbmQ6OkFnZW50VGlja2V0Q29tcG9zZSMjI1N0YXRlRGVmYXVsdCIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EZWZpbmVzIHRoZSBkZWZhdWx0IG5leHQgc3RhdGUgb2YgYSB0aWNrZXQgaWYgaXQgaXMgY29tcG9zZWQgLyBhbnN3ZXJlZCBpbiB0aGUgdGlja2V0IGNvbXBvc2Ugc2NyZWVuIG9mIHRoZSBpUGhvbmUgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPmlQaG9uZUhhbmRsZTwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkZyb250ZW5kOjpBZ2VudDo6VGlja2V0OjpWaWV3Q29tcG9zZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxTdHJpbmcgUmVnZXg9IiI+b3BlbjwvU3RyaW5nPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9ImlQaG9uZTo6RnJvbnRlbmQ6OkFnZW50VGlja2V0Q29tcG9zZSMjI1N0YXRlVHlwZSIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EZWZpbmVzIHRoZSBuZXh0IHBvc3NpYmxlIHN0YXRlcyBhZnRlciBjb21wb3NpbmcgLyBhbnN3ZXJpbmcgYSB0aWNrZXQgaW4gdGhlIHRpY2tldCBjb21wb3NlIHNjcmVlbiBvZiB0aGUgaVBob25lIGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5pUGhvbmVIYW5kbGU8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Gcm9udGVuZDo6QWdlbnQ6OlRpY2tldDo6Vmlld0NvbXBvc2U8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8QXJyYXk+CiAgICAgICAgICAgICAgICA8SXRlbT5vcGVuPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0+Y2xvc2VkPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0+cGVuZGluZyBhdXRvPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0+cGVuZGluZyByZW1pbmRlcjwvSXRlbT4KICAgICAgICAgICAgPC9BcnJheT4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJpUGhvbmU6OkZyb250ZW5kOjpDb21wb3NlQWRkQ3VzdG9tZXJBZGRyZXNzIiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkFkZHMgY3VzdG9tZXJzIGVtYWlsIGFkZHJlc3NlcyB0byByZWNpcGllbnRzIGluIHRoZSB0aWNrZXQgY29tcG9zZSBzY3JlZW4gb2YgdGhlIGlQaG9uZSBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+aVBob25lSGFuZGxlPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+RnJvbnRlbmQ6OkFnZW50OjpUaWNrZXQ6OlZpZXdDb21wb3NlPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPE9wdGlvbiBTZWxlY3RlZElEPSIxIj4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMCI+Tm88L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjEiPlllczwvSXRlbT4KICAgICAgICAgICAgPC9PcHRpb24+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iaVBob25lOjpGcm9udGVuZDo6Q29tcG9zZVJlcGxhY2VTZW5kZXJBZGRyZXNzIiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlJlcGxhY2VzIHRoZSBvcmlnaW5hbCBzZW5kZXIgd2l0aCBjdXJyZW50IGN1c3RvbWVyJ3MgZW1haWwgYWRkcmVzcyBvbiBjb21wb3NlIGFuc3dlciBpbiB0aGUgdGlja2V0IGNvbXBvc2Ugc2NyZWVuIG9mIHRoZSBpUGhvbmUgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPmlQaG9uZUhhbmRsZTwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkZyb250ZW5kOjpBZ2VudDo6VGlja2V0OjpWaWV3Q29tcG9zZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxPcHRpb24gU2VsZWN0ZWRJRD0iMCI+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjAiPk5vPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIxIj5ZZXM8L0l0ZW0+CiAgICAgICAgICAgIDwvT3B0aW9uPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9ImlQaG9uZTo6RnJvbnRlbmQ6OkNvbXBvc2VFeGNsdWRlQ2NSZWNpcGllbnRzIiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlVzZXMgQ2MgcmVjaXBpZW50cyBpbiByZXBseSBDYyBsaXN0IG9uIGNvbXBvc2UgYW4gZW1haWwgYW5zd2VyIGluIHRoZSB0aWNrZXQgY29tcG9zZSBzY3JlZW4gb2YgdGhlIGlQaG9uZSBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+aVBob25lSGFuZGxlPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+RnJvbnRlbmQ6OkFnZW50OjpUaWNrZXQ6OlZpZXdDb21wb3NlPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPE9wdGlvbiBTZWxlY3RlZElEPSIwIj4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMCI+Tm88L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjEiPlllczwvSXRlbT4KICAgICAgICAgICAgPC9PcHRpb24+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iaVBob25lOjpGcm9udGVuZDo6QWdlbnRUaWNrZXRDb21wb3NlIyMjVGltZVVuaXRzIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlNldHMgdGhlIHRpbWUgdW5pdHMgaW4gdGhlIHRpY2tldCBjb21wb3NlIHNjcmVlbiBvZiB0aGUgaVBob25lIGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5pUGhvbmVIYW5kbGU8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Gcm9udGVuZDo6QWdlbnQ6OlRpY2tldDo6Vmlld0NvbXBvc2U8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8T3B0aW9uIFNlbGVjdGVkSUQ9IjEiPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIwIj5ObzwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMSI+WWVzPC9JdGVtPgogICAgICAgICAgICA8L09wdGlvbj4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJpUGhvbmU6OkZyb250ZW5kOjpBZ2VudFRpY2tldENvbXBvc2UjIyNEeW5hbWljRmllbGQiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIHRpY2tldCBjb21wb3NlIHNjcmVlbiBvZiB0aGUgaVBob25lIGludGVyZmFjZS4gUG9zc2libGUgc2V0dGluZ3M6IDAgPSBEaXNhYmxlZCwgMSA9IEVuYWJsZWQsIDIgPSBFbmFibGVkIGFuZCByZXF1aXJlZC48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5pUGhvbmVIYW5kbGU8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Gcm9udGVuZDo6QWdlbnQ6OlRpY2tldDo6Vmlld0NvbXBvc2U8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KCiAgICA8Q29uZmlnSXRlbSBOYW1lPSJpUGhvbmU6OkZyb250ZW5kOjpBZ2VudFRpY2tldE1vdmUjIyNQZXJtaXNzaW9uIiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlJlcXVpcmVkIHBlcm1pc3Npb25zIHRvIHVzZSB0aGUgbW92ZSB0aWNrZXQgc2NyZWVuIGluIHRoZSBpUGhvbmUgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPmlQaG9uZUhhbmRsZTwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkZyb250ZW5kOjpBZ2VudDo6VGlja2V0OjpWaWV3TW92ZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxTdHJpbmcgUmVnZXg9IiI+Y29tcG9zZTwvU3RyaW5nPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9ImlQaG9uZTo6RnJvbnRlbmQ6OkFnZW50VGlja2V0TW92ZSMjI1JlcXVpcmVkTG9jayIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EZWZpbmVzIGlmIGEgdGlja2V0IGxvY2sgaXMgcmVxdWlyZWQgaW4gdGhlIG1vdmUgdGlja2V0IHNjcmVlbiBvZiB0aGUgaVBob25lIGludGVyZmFjZSAoaWYgdGhlIHRpY2tldCBpc24ndCBsb2NrZWQgeWV0LCB0aGUgdGlja2V0IGdldHMgbG9ja2VkIGFuZCB0aGUgY3VycmVudCBhZ2VudCB3aWxsIGJlIHNldCBhdXRvbWF0aWNhbGx5IGFzIGl0cyBvd25lcikuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+aVBob25lSGFuZGxlPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+RnJvbnRlbmQ6OkFnZW50OjpUaWNrZXQ6OlZpZXdNb3ZlPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPE9wdGlvbiBTZWxlY3RlZElEPSIxIj4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMCI+Tm88L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjEiPlllczwvSXRlbT4KICAgICAgICAgICAgPC9PcHRpb24+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iaVBob25lOjpGcm9udGVuZDo6QWdlbnRUaWNrZXRNb3ZlIyMjT3duZXIiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+U2V0cyB0aGUgdGlja2V0IG93bmVyIGluIHRoZSBtb3ZlIHRpY2tldCBzY3JlZW4gb2YgdGhlIGlQaG9uZSBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+aVBob25lSGFuZGxlPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+RnJvbnRlbmQ6OkFnZW50OjpUaWNrZXQ6OlZpZXdNb3ZlPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPE9wdGlvbiBTZWxlY3RlZElEPSIxIj4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMCI+Tm88L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjEiPlllczwvSXRlbT4KICAgICAgICAgICAgPC9PcHRpb24+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iaVBob25lOjpGcm9udGVuZDo6QWdlbnRUaWNrZXRNb3ZlIyMjU3RhdGUiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+QWxsb3dzIHRvIHNldCBhIG5ldyB0aWNrZXQgc3RhdGUgaW4gdGhlIG1vdmUgdGlja2V0IHNjcmVlbiBvZiB0aGUgaVBob25lIGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5pUGhvbmVIYW5kbGU8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Gcm9udGVuZDo6QWdlbnQ6OlRpY2tldDo6Vmlld01vdmU8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8T3B0aW9uIFNlbGVjdGVkSUQ9IjEiPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIwIj5ObzwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMSI+WWVzPC9JdGVtPgogICAgICAgICAgICA8L09wdGlvbj4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJpUGhvbmU6OkZyb250ZW5kOjpBZ2VudFRpY2tldE1vdmUjIyNTdGF0ZVR5cGUiIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RGVmaW5lcyB0aGUgbmV4dCBzdGF0ZSBvZiBhIHRpY2tldCBhZnRlciBiZWluZyBtb3ZlZCB0byBhbm90aGVyIHF1ZXVlLCBpbiB0aGUgbW92ZSB0aWNrZXQgc2NyZWVuIG9mIHRoZSBpUGhvbmUgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPmlQaG9uZUhhbmRsZTwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkZyb250ZW5kOjpBZ2VudDo6VGlja2V0OjpWaWV3TW92ZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxBcnJheT4KICAgICAgICAgICAgICAgIDxJdGVtPm9wZW48L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbT5jbG9zZWQ8L0l0ZW0+CiAgICAgICAgICAgIDwvQXJyYXk+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iaVBob25lOjpGcm9udGVuZDo6QWdlbnRUaWNrZXRNb3ZlIyMjU3RhdGVEZWZhdWx0IiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkRlZmluZXMgdGhlIGRlZmF1bHQgbmV4dCBzdGF0ZSBvZiBhIHRpY2tldCBhZnRlciBhZGRpbmcgYSBub3RlLCBpbiB0aGUgbW92ZSB0aWNrZXQgc2NyZWVuIG9mIHRoZSBpUGhvbmUgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPmlQaG9uZUhhbmRsZTwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkZyb250ZW5kOjpBZ2VudDo6VGlja2V0OjpWaWV3TW92ZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxTdHJpbmcgUmVnZXg9IiI+b3BlbjwvU3RyaW5nPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9ImlQaG9uZTo6RnJvbnRlbmQ6OkFnZW50VGlja2V0TW92ZSMjI1ByaW9yaXR5IiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjAiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlNob3dzIHRoZSB0aWNrZXQgcHJpb3JpdHkgb3B0aW9ucyBpbiB0aGUgbW92ZSB0aWNrZXQgc2NyZWVuIG9mIHRoZSBpUGhvbmUgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPmlQaG9uZUhhbmRsZTwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkZyb250ZW5kOjpBZ2VudDo6VGlja2V0OjpWaWV3TW92ZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxPcHRpb24gU2VsZWN0ZWRJRD0iMCI+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjAiPk5vPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIxIj5ZZXM8L0l0ZW0+CiAgICAgICAgICAgIDwvT3B0aW9uPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9ImlQaG9uZTo6RnJvbnRlbmQ6OkFnZW50VGlja2V0TW92ZSMjI1ByaW9yaXR5RGVmYXVsdCIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIwIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EZWZpbmVzIHRoZSBkZWZhdWx0IHRpY2tldCBwcmlvcml0eSBpbiB0aGUgbW92ZSB0aWNrZXQgc2NyZWVuIG9mIHRoZSBpUGhvbmUgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPmlQaG9uZUhhbmRsZTwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkZyb250ZW5kOjpBZ2VudDo6VGlja2V0OjpWaWV3TW92ZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxTdHJpbmcgUmVnZXg9IiI+MyBub3JtYWw8L1N0cmluZz4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJpUGhvbmU6OkZyb250ZW5kOjpBZ2VudFRpY2tldE1vdmUjIyNUaW1lVW5pdHMiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+U2V0cyB0aGUgdGltZSB1bml0cyBpbiB0aGUgbW92ZSB0aWNrZXQgc2NyZWVuIG9mIHRoZSBpUGhvbmUgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPmlQaG9uZUhhbmRsZTwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkZyb250ZW5kOjpBZ2VudDo6VGlja2V0OjpWaWV3TW92ZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxPcHRpb24gU2VsZWN0ZWRJRD0iMSI+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjAiPk5vPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIxIj5ZZXM8L0l0ZW0+CiAgICAgICAgICAgIDwvT3B0aW9uPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9ImlQaG9uZTo6RnJvbnRlbmQ6OkFnZW50VGlja2V0TW92ZSMjI0R5bmFtaWNGaWVsZCIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EeW5hbWljIGZpZWxkcyBzaG93biBpbiB0aGUgdGlja2V0IG1vdmUgc2NyZWVuIG9mIHRoZSBpUGhvbmUgaW50ZXJmYWNlLiBQb3NzaWJsZSBzZXR0aW5nczogMCA9IERpc2FibGVkLCAxID0gRW5hYmxlZCwgMiA9IEVuYWJsZWQgYW5kIHJlcXVpcmVkLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPmlQaG9uZUhhbmRsZTwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkZyb250ZW5kOjpBZ2VudDo6VGlja2V0OjpWaWV3TW92ZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgoKICAgIDxDb25maWdJdGVtIE5hbWU9ImlQaG9uZTo6QVBJOjpPYmplY3QjIyNDb25maWdPYmplY3QiIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+Q29uZmlndXJlIGFjY2VzcyByZXN0cmljdGlvbnMgdG8gb2JqZWN0cyBvZiBpUGhvbmUgaGFuZGxlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPmlQaG9uZUhhbmRsZTwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkFQSTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxTdHJpbmcgUmVnZXg9IiI+PC9TdHJpbmc+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iaVBob25lOjpBUEk6Ok9iamVjdCMjI1RpbWVPYmplY3QiIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+Q29uZmlndXJlIGFjY2VzcyByZXN0cmljdGlvbnMgdG8gb2JqZWN0cyBvZiBpUGhvbmUgaGFuZGxlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPmlQaG9uZUhhbmRsZTwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkFQSTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxTdHJpbmcgUmVnZXg9IiI+PC9TdHJpbmc+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iaVBob25lOjpBUEk6Ok9iamVjdCMjI0xvZ09iamVjdCIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5Db25maWd1cmUgYWNjZXNzIHJlc3RyaWN0aW9ucyB0byBvYmplY3RzIG9mIGlQaG9uZSBoYW5kbGUuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+aVBob25lSGFuZGxlPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+QVBJPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPFN0cmluZyBSZWdleD0iIj48L1N0cmluZz4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJpUGhvbmU6OkFQSTo6T2JqZWN0IyMjREJPYmplY3QiIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+Q29uZmlndXJlIGFjY2VzcyByZXN0cmljdGlvbnMgdG8gb2JqZWN0cyBvZiBpUGhvbmUgaGFuZGxlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPmlQaG9uZUhhbmRsZTwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkFQSTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxTdHJpbmcgUmVnZXg9IiI+PC9TdHJpbmc+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iaVBob25lOjpBUEk6Ok9iamVjdCMjI1RpY2tldE9iamVjdCIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5Db25maWd1cmUgYWNjZXNzIHJlc3RyaWN0aW9ucyB0byBvYmplY3RzIG9mIGlQaG9uZSBoYW5kbGUuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+aVBob25lSGFuZGxlPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+QVBJPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPFN0cmluZyBSZWdleD0iIj4oTW92ZUxpc3R8TW92ZVRpY2tldCk8L1N0cmluZz4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJpUGhvbmU6OkFQSTo6T2JqZWN0IyMjQ3VzdG9tT2JqZWN0IiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkNvbmZpZ3VyZSBhY2Nlc3MgcmVzdHJpY3Rpb25zIHRvIG9iamVjdHMgb2YgaVBob25lIGhhbmRsZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5pUGhvbmVIYW5kbGU8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5BUEk8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8U3RyaW5nIFJlZ2V4PSIiPjwvU3RyaW5nPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9ImlQaG9uZTo6QVBJOjpPYmplY3QjIyNpUGhvbmVPYmplY3QiIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+Q29uZmlndXJlIGFjY2VzcyByZXN0cmljdGlvbnMgdG8gb2JqZWN0cyBvZiBpUGhvbmUgaGFuZGxlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPmlQaG9uZUhhbmRsZTwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkFQSTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxTdHJpbmcgUmVnZXg9IiI+PC9TdHJpbmc+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgoKICAgIDxDb25maWdJdGVtIE5hbWU9IkR5bmFtaWNGaWVsZHM6OkV4dGVuc2lvbjo6QmFja2VuZCMjIzEwMC1pUGhvbmUiIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RHluYW1pYyBGaWVsZHMgRXh0ZW5zaW9uLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPmlQaG9uZUhhbmRsZTwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkR5bmFtaWNGaWVsZHM6OkV4dGVuc2lvbjo6UmVnaXN0cmF0aW9uPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ik1vZHVsZSI+S2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZDo6aVBob25lQmFja2VuZDwvSXRlbT4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9IkR5bmFtaWNGaWVsZHM6OkV4dGVuc2lvbjo6RHJpdmVyOjpUZXh0IyMjMTAwLWlQaG9uZSIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EeW5hbWljIEZpZWxkcyBFeHRlbnNpb24uPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+aVBob25lSGFuZGxlPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+RHluYW1pY0ZpZWxkczo6RXh0ZW5zaW9uOjpSZWdpc3RyYXRpb248L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTW9kdWxlIj5LZXJuZWw6OlN5c3RlbTo6RHluYW1pY0ZpZWxkOjpEcml2ZXI6OmlQaG9uZVRleHQ8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkJlaGF2aW9ycyI+CiAgICAgICAgICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iSXNJUGhvbmVDYXBhYmxlIj4xPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9IkR5bmFtaWNGaWVsZHM6OkV4dGVuc2lvbjo6RHJpdmVyOjpUZXh0QXJlYSMjIzEwMC1pUGhvbmUiIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RHluYW1pYyBGaWVsZHMgRXh0ZW5zaW9uLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPmlQaG9uZUhhbmRsZTwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkR5bmFtaWNGaWVsZHM6OkV4dGVuc2lvbjo6UmVnaXN0cmF0aW9uPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ik1vZHVsZSI+S2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZDo6RHJpdmVyOjppUGhvbmVUZXh0QXJlYTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQmVoYXZpb3JzIj4KICAgICAgICAgICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJJc0lQaG9uZUNhcGFibGUiPjE8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPC9IYXNoPgogICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iRHluYW1pY0ZpZWxkczo6RXh0ZW5zaW9uOjpEcml2ZXI6OkNoZWNrYm94IyMjMTAwLWlQaG9uZSIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EeW5hbWljIEZpZWxkcyBFeHRlbnNpb24uPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+aVBob25lSGFuZGxlPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+RHluYW1pY0ZpZWxkczo6RXh0ZW5zaW9uOjpSZWdpc3RyYXRpb248L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTW9kdWxlIj5LZXJuZWw6OlN5c3RlbTo6RHluYW1pY0ZpZWxkOjpEcml2ZXI6OmlQaG9uZUNoZWNrYm94PC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJCZWhhdmlvcnMiPgogICAgICAgICAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IklzSVBob25lQ2FwYWJsZSI+MTwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJEeW5hbWljRmllbGRzOjpFeHRlbnNpb246OkRyaXZlcjo6RHJvcGRvd24jIyMxMDAtaVBob25lIiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkR5bmFtaWMgRmllbGRzIEV4dGVuc2lvbi48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5pUGhvbmVIYW5kbGU8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5EeW5hbWljRmllbGRzOjpFeHRlbnNpb246OlJlZ2lzdHJhdGlvbjwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJNb2R1bGUiPktlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQ6OkRyaXZlcjo6aVBob25lRHJvcGRvd248L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkJlaGF2aW9ycyI+CiAgICAgICAgICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iSXNJUGhvbmVDYXBhYmxlIj4xPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDwhLS0gIE11bHRpc2VsZWN0IER5bmFtaWMgRmllbGQgaXMgY3VycmVudGx5IG5vdCBzdXBwb3J0ZWQgYnkgaVBob25lIEFwcCAtLT4KICAgIDxDb25maWdJdGVtIE5hbWU9IkR5bmFtaWNGaWVsZHM6OkV4dGVuc2lvbjo6RHJpdmVyOjpEYXRlVGltZSMjIzEwMC1pUGhvbmUiIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RHluYW1pYyBGaWVsZHMgRXh0ZW5zaW9uLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPmlQaG9uZUhhbmRsZTwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkR5bmFtaWNGaWVsZHM6OkV4dGVuc2lvbjo6UmVnaXN0cmF0aW9uPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ik1vZHVsZSI+S2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZDo6RHJpdmVyOjppUGhvbmVEYXRlVGltZTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQmVoYXZpb3JzIj4KICAgICAgICAgICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJJc0lQaG9uZUNhcGFibGUiPjE8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPC9IYXNoPgogICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iRHluYW1pY0ZpZWxkczo6RXh0ZW5zaW9uOjpEcml2ZXI6OkRhdGUjIyMxMDAtaVBob25lIiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkR5bmFtaWMgRmllbGRzIEV4dGVuc2lvbi48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5pUGhvbmVIYW5kbGU8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5EeW5hbWljRmllbGRzOjpFeHRlbnNpb246OlJlZ2lzdHJhdGlvbjwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJNb2R1bGUiPktlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQ6OkRyaXZlcjo6aVBob25lRGF0ZTwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQmVoYXZpb3JzIj4KICAgICAgICAgICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJJc0lQaG9uZUNhcGFibGUiPjE8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPC9IYXNoPgogICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgo8L290cnNfY29uZmlnPgo=
IyAtLQojIEtlcm5lbC9TeXN0ZW0vRHluYW1pY0ZpZWxkL0RyaXZlci9pUGhvbmVDaGVja2JveC5wbSAtIERyaXZlciBmb3IgRHluYW1pY0ZpZWxkIENoZWNrYm94IGJhY2tlbmQKIyBDb3B5cmlnaHQgKEMpIDIwMDEtMjAxMyBPVFJTIEFHLCBodHRwOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEFHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2FncGwudHh0LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQ6OkRyaXZlcjo6aVBob25lQ2hlY2tib3g7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7Cgp1c2UgS2VybmVsOjpTeXN0ZW06OlZhcmlhYmxlQ2hlY2sgcXcoOmFsbCk7Cgo9aGVhZDEgTkFNRQoKS2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZDo6RHJpdmVyOjppUGhvbmVDaGFja2JveAoKPWhlYWQxIFNZTk9QU0lTCgpEeW5hbWljRmllbGRzIENoZWNrYm94IGJhY2tlbmQgZHJpdmVyIGZvciBpUGhvbmVIYW5kbGUKCj1oZWFkMSBQVUJMSUMgSU5URVJGQUNFCgpUaGlzIG1vZHVsZSBpbXBsZW1lbnRzIHRoZSBwdWJsaWMgaW50ZXJmYWNlIG9mIEw8S2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZDo6QmFja2VuZD4uClBsZWFzZSBsb29rIHRoZXJlIGZvciBhIGRldGFpbGVkIHJlZmVyZW5jZSBvZiB0aGUgZnVuY3Rpb25zLgoKPW92ZXIgNAoKPWN1dAoKc3ViIElQaG9uZUZpZWxkUGFyYW1ldGVyQnVpbGQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIHRha2UgY29uZmlnIGZyb20gZmllbGQgY29uZmlnCiAgICBteSAkRmllbGRDb25maWcgPSAkUGFyYW17RHluYW1pY0ZpZWxkQ29uZmlnfS0+e0NvbmZpZ307CiAgICBteSAkRmllbGROYW1lICAgPSAnRHluYW1pY0ZpZWxkXycgLiAkUGFyYW17RHluYW1pY0ZpZWxkQ29uZmlnfS0+e05hbWV9OwogICAgbXkgJEZpZWxkTGFiZWwgID0gJFBhcmFte0xhbmd1YWdlT2JqZWN0fS0+R2V0KCAkUGFyYW17RHluYW1pY0ZpZWxkQ29uZmlnfS0+e0xhYmVsfSApOwoKICAgIG15ICRWYWx1ZSA9ICcnOwoKICAgICMgc2V0IHRoZSBmaWVsZCB2YWx1ZSBvciBkZWZhdWx0CiAgICBpZiAoICRQYXJhbXtVc2VEZWZhdWx0VmFsdWV9ICkgewogICAgICAgICRWYWx1ZSA9ICggZGVmaW5lZCAkRmllbGRDb25maWctPntEZWZhdWx0VmFsdWV9ID8gJEZpZWxkQ29uZmlnLT57RGVmYXVsdFZhbHVlfSA6ICcnICk7CiAgICB9CiAgICAkVmFsdWUgPSAkUGFyYW17VmFsdWV9IGlmIGRlZmluZWQgJFBhcmFte1ZhbHVlfTsKCiAgICAjIHNldCBQb3NzaWJsZVZhbHVlcwogICAgbXkgJFBvc3NpYmxlVmFsdWVzID0gewogICAgICAgIDAgPT4gJFBhcmFte0xhbmd1YWdlT2JqZWN0fS0+R2V0KCdVbmNoZWNrZWQnKSB8fCAnVW5jaGVja2VkJywKICAgICAgICAxID0+ICRQYXJhbXtMYW5ndWFnZU9iamVjdH0tPkdldCgnQ2hlY2tlZCcpICAgfHwgJ0NoZWNrZWQnLAogICAgfTsKCiAgICAjIGNyZWF0ZSB0aGUgZmllbGQgZGVmaW5pdGlvbgogICAgbXkgJERhdGEgPSB7CiAgICAgICAgTmFtZSAgICAgID0+ICRGaWVsZE5hbWUsCiAgICAgICAgVGl0bGUgICAgID0+ICRGaWVsZExhYmVsLAogICAgICAgIERhdGF0eXBlICA9PiAnVGV4dCcsCiAgICAgICAgVmlld3R5cGUgID0+ICdQaWNrZXInLAogICAgICAgIE9wdGlvbnMgICA9PiAkUG9zc2libGVWYWx1ZXMsCiAgICAgICAgTWFuZGF0b3J5ID0+ICRQYXJhbXtNYW5kYXRvcnl9LAogICAgICAgIERlZmF1bHQgICA9PiAkVmFsdWUsCiAgICB9OwoKICAgIHJldHVybiAkRGF0YTsKfQoKc3ViIElQaG9uZUZpZWxkVmFsdWVHZXQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAkRmllbGROYW1lID0gJ0R5bmFtaWNGaWVsZF8nIC4gJFBhcmFte0R5bmFtaWNGaWVsZENvbmZpZ30tPntOYW1lfTsKCiAgICBteSAkVmFsdWUgPSAkUGFyYW17JEZpZWxkTmFtZX07CgogICAgcmV0dXJuICRWYWx1ZTsKfQoKc3ViIElQaG9uZUZpZWxkVmFsdWVWYWxpZGF0ZSB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgZ2V0IHRoZSBmaWVsZCB2YWx1ZSBmcm9tIHBhcmFtCiAgICBteSAkVmFsdWUgPSAkUGFyYW17VmFsdWV9OwoKICAgIG15ICRTZXJ2ZXJFcnJvcjsKICAgIG15ICRFcnJvck1lc3NhZ2U7CgogICAgIyBwZXJmb3JtIG5lY2Vzc2FyeSB2YWxpZGF0aW9ucwogICAgaWYgKCAkUGFyYW17TWFuZGF0b3J5fSAmJiAhJFZhbHVlICkgewogICAgICAgICRTZXJ2ZXJFcnJvciA9IDE7CiAgICB9CiAgICBlbHNlIHsKCiAgICAgICAgIyB2YWxpZGF0ZSBpZiB2YWx1ZSBpcyBpbiBwb3NzaWJsZSB2YWx1ZXMgbGlzdCAoYnV0IGxldCBwYXNzIGVtcHR5IHZhbHVlcykKICAgICAgICBpZiAoICRWYWx1ZSBuZSAnMCcgJiYgJFZhbHVlIG5lICcxJyApIHsKICAgICAgICAgICAgJFNlcnZlckVycm9yICA9IDE7CiAgICAgICAgICAgICRFcnJvck1lc3NhZ2UgPSAnVGhlIGZpZWxkIGNvbnRlbnQgaXMgaW52YWxpZCc7CiAgICAgICAgfQogICAgfQoKICAgICMgY3JlYXRlIHJlc3VsdGluZyBzdHJ1Y3R1cmUKICAgIG15ICRSZXN1bHQgPSB7CiAgICAgICAgU2VydmVyRXJyb3IgID0+ICRTZXJ2ZXJFcnJvciwKICAgICAgICBFcnJvck1lc3NhZ2UgPT4gJEVycm9yTWVzc2FnZSwKICAgIH07CgogICAgcmV0dXJuICRSZXN1bHQ7Cn0KCjE7Cgo9YmFjawoKPWhlYWQxIFRFUk1TIEFORCBDT05ESVRJT05TCgpUaGlzIHNvZnR3YXJlIGlzIHBhcnQgb2YgdGhlIE9UUlMgcHJvamVjdCAoTDxodHRwOi8vb3Rycy5vcmcvPikuCgpUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQp0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChBR1BMKS4gSWYgeW91CmRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBMPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9hZ3BsLnR4dD4uCgo9Y3V0Cg==
IyAtLQojIEtlcm5lbC9TeXN0ZW0vRHluYW1pY0ZpZWxkL0RyaXZlci9pUGhvbmVEYXRlLnBtIC0gRHJpdmVyIGZvciBEeW5hbWljRmllbGQgRGF0ZSBiYWNrZW5kCiMgQ29weXJpZ2h0IChDKSAyMDAxLTIwMTMgT1RSUyBBRywgaHR0cDovL290cnMuY29tLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChBR1BMKS4gSWYgeW91CiMgZGlkIG5vdCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9hZ3BsLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6OlN5c3RlbTo6RHluYW1pY0ZpZWxkOjpEcml2ZXI6OmlQaG9uZURhdGU7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7Cgp1c2UgS2VybmVsOjpTeXN0ZW06OlZhcmlhYmxlQ2hlY2sgcXcoOmFsbCk7Cgo9aGVhZDEgTkFNRQoKS2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZDo6RHJpdmVyOjppUGhvbmVEYXRlCgo9aGVhZDEgU1lOT1BTSVMKCkR5bmFtaWNGaWVsZHMgRGF0ZSBiYWNrZW5kIGRyaXZlciBmb3IgaVBob25lSGFuZGxlCgo9aGVhZDEgUFVCTElDIElOVEVSRkFDRQoKVGhpcyBtb2R1bGUgaW1wbGVtZW50cyB0aGUgcHVibGljIGludGVyZmFjZSBvZiBMPEtlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQ6OkJhY2tlbmQ+LgpQbGVhc2UgbG9vayB0aGVyZSBmb3IgYSBkZXRhaWxlZCByZWZlcmVuY2Ugb2YgdGhlIGZ1bmN0aW9ucy4KCj1vdmVyIDQKCj1jdXQKCnN1YiBJUGhvbmVGaWVsZFBhcmFtZXRlckJ1aWxkIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyB0YWtlIGNvbmZpZyBmcm9tIGZpZWxkIGNvbmZpZwogICAgbXkgJEZpZWxkQ29uZmlnID0gJFBhcmFte0R5bmFtaWNGaWVsZENvbmZpZ30tPntDb25maWd9OwogICAgbXkgJEZpZWxkTmFtZSAgID0gJ0R5bmFtaWNGaWVsZF8nIC4gJFBhcmFte0R5bmFtaWNGaWVsZENvbmZpZ30tPntOYW1lfTsKICAgIG15ICRGaWVsZExhYmVsICA9ICRQYXJhbXtMYW5ndWFnZU9iamVjdH0tPkdldCggJFBhcmFte0R5bmFtaWNGaWVsZENvbmZpZ30tPntMYWJlbH0gKTsKCiAgICBteSAkVmFsdWUgPSAnJzsKCiAgICAjIHNldCB0aGUgZmllbGQgdmFsdWUgb3IgZGVmYXVsdAogICAgaWYgKCAkUGFyYW17VXNlRGVmYXVsdFZhbHVlfSApIHsKICAgICAgICBteSAkVGltZURpZmYgPSAoIGRlZmluZWQgJEZpZWxkQ29uZmlnLT57RGVmYXVsdFZhbHVlfSA/ICRGaWVsZENvbmZpZy0+e0RlZmF1bHRWYWx1ZX0gOiAnJyApOwoKICAgICAgICAjIGdldCBjdXJyZW50IHN5c3RlbSB0aW1lCiAgICAgICAgbXkgJFN5c3RlbVRpbWUgPSAkU2VsZi0+e1RpbWVPYmplY3R9LT5TeXN0ZW1UaW1lKCk7CgogICAgICAgICMgZ2V0IHRpbWUgc3RyaW5nICsgJFRpbWUgZGlmZgogICAgICAgICRWYWx1ZSA9ICRTZWxmLT57VGltZU9iamVjdH0tPlN5c3RlbVRpbWUyVGltZVN0YW1wKAogICAgICAgICAgICBTeXN0ZW1UaW1lID0+ICRTeXN0ZW1UaW1lICsgJFRpbWVEaWZmLAogICAgICAgICk7CgogICAgICAgICMgcmVtb3ZlIHRoZSB0aW1lIHBhcnQKICAgICAgICAkVmFsdWUgPX4gc3tcQSAoXGR7NH0tXGR7Mn0tXGR7Mn0pICAuKiBcen17JDF9eG1zOwogICAgfQogICAgJFZhbHVlID0gJFBhcmFte1ZhbHVlfSBpZiBkZWZpbmVkICRQYXJhbXtWYWx1ZX07CgogICAgIyBjcmVhdGUgdGhlIGZpZWxkIGRlZmluaXRpb24KICAgIG15ICREYXRhID0gewogICAgICAgIE5hbWUgICAgICA9PiAkRmllbGROYW1lLAogICAgICAgIFRpdGxlICAgICA9PiAkRmllbGRMYWJlbCwKICAgICAgICBEYXRhdHlwZSAgPT4gJ0RhdGUnLAogICAgICAgIFZpZXd0eXBlICA9PiAnUGlja2VyJywKICAgICAgICBNYW5kYXRvcnkgPT4gJFBhcmFte01hbmRhdG9yeX0sCiAgICAgICAgRGVmYXVsdCAgID0+ICRWYWx1ZSB8fCAnJywKICAgIH07CgogICAgcmV0dXJuICREYXRhOwp9CgpzdWIgSVBob25lRmllbGRWYWx1ZUdldCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICRGaWVsZE5hbWUgPSAnRHluYW1pY0ZpZWxkXycgLiAkUGFyYW17RHluYW1pY0ZpZWxkQ29uZmlnfS0+e05hbWV9OwoKICAgIG15ICRWYWx1ZSA9ICRQYXJhbXskRmllbGROYW1lfTsKCiAgICAjIHJlbW92ZSB0aGUgdGltZSBwYXJ0CiAgICBpZiAoJFZhbHVlKSB7CiAgICAgICAgJFZhbHVlID1+IHN7XEEgKFxkezR9LVxkezJ9LVxkezJ9KSAgLiogXHp9eyQxfXhtczsKCiAgICAgICAgIyBhZGQgMHMgdG8gdGhlIHRpbWUgcGFydAogICAgICAgICRWYWx1ZSAuPSAnIDAwOjAwOjAwJzsKICAgIH0KCiAgICByZXR1cm4gJFZhbHVlOwp9CgpzdWIgSVBob25lRmllbGRWYWx1ZVZhbGlkYXRlIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBnZXQgdGhlIGZpZWxkIHZhbHVlIGZyb20gcGFyYW0KICAgIG15ICRWYWx1ZSA9ICRQYXJhbXtWYWx1ZX07CgogICAgbXkgJFNlcnZlckVycm9yOwogICAgbXkgJEVycm9yTWVzc2FnZTsKCiAgICAjIHBlcmZvcm0gbmVjZXNzYXJ5IHZhbGlkYXRpb25zCiAgICBpZiAoICRQYXJhbXtNYW5kYXRvcnl9ICYmICRWYWx1ZSBlcSAnJyApIHsKCiAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgU2VydmVyRXJyb3IgID0+IDEsCiAgICAgICAgICAgIEVycm9yTWVzc2FnZSA9PiAkRXJyb3JNZXNzYWdlLAogICAgICAgIH07CiAgICB9CgogICAgIyB0cnkgdG8gY29udmVydCB2YWx1ZSB0byBhIFN5c3RlbVRpbWUKICAgIGlmICgkVmFsdWUpIHsKICAgICAgICBteSAkU3lzdGVtVGltZSA9ICRTZWxmLT57VGltZU9iamVjdH0tPlRpbWVTdGFtcDJTeXN0ZW1UaW1lKAogICAgICAgICAgICBTdHJpbmcgPT4gJFZhbHVlLAogICAgICAgICk7CgogICAgICAgIGlmICggISRTeXN0ZW1UaW1lICkgewogICAgICAgICAgICByZXR1cm4gewogICAgICAgICAgICAgICAgU2VydmVyRXJyb3IgID0+IDEsCiAgICAgICAgICAgICAgICBFcnJvck1lc3NhZ2UgPT4gJEVycm9yTWVzc2FnZSwKICAgICAgICAgICAgfTsKICAgICAgICB9CiAgICB9CgogICAgIyBjcmVhdGUgcmVzdWx0aW5nIHN0cnVjdHVyZQogICAgbXkgJFJlc3VsdCA9IHsKICAgICAgICBTZXJ2ZXJFcnJvciAgPT4gJFNlcnZlckVycm9yLAogICAgICAgIEVycm9yTWVzc2FnZSA9PiAkRXJyb3JNZXNzYWdlLAogICAgfTsKCiAgICByZXR1cm4gJFJlc3VsdDsKfQoKMTsKCj1iYWNrCgo9aGVhZDEgVEVSTVMgQU5EIENPTkRJVElPTlMKClRoaXMgc29mdHdhcmUgaXMgcGFydCBvZiB0aGUgT1RSUyBwcm9qZWN0IChMPGh0dHA6Ly9vdHJzLm9yZy8+KS4KClRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCnRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEFHUEwpLiBJZiB5b3UKZGlkIG5vdCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIEw8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2FncGwudHh0Pi4KCj1jdXQK
IyAtLQojIEtlcm5lbC9TeXN0ZW0vRHluYW1pY0ZpZWxkL0RyaXZlci9pUGhvbmVEYXRlVGltZS5wbSAtIERyaXZlciBmb3IgRHluYW1pY0ZpZWxkIERhdGVUaW1lIGJhY2tlbmQKIyBDb3B5cmlnaHQgKEMpIDIwMDEtMjAxMyBPVFJTIEFHLCBodHRwOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEFHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2FncGwudHh0LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQ6OkRyaXZlcjo6aVBob25lRGF0ZVRpbWU7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7Cgp1c2UgS2VybmVsOjpTeXN0ZW06OlZhcmlhYmxlQ2hlY2sgcXcoOmFsbCk7Cgo9aGVhZDEgTkFNRQoKS2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZDo6RHJpdmVyOjppUGhvbmVEYXRlVGltZQoKPWhlYWQxIFNZTk9QU0lTCgpEeW5hbWljRmllbGRzIERhdGVUaW1lIGJhY2tlbmQgZHJpdmVyIGZvciBpUGhvbmVIYW5kbGUKCj1oZWFkMSBQVUJMSUMgSU5URVJGQUNFCgpUaGlzIG1vZHVsZSBpbXBsZW1lbnRzIHRoZSBwdWJsaWMgaW50ZXJmYWNlIG9mIEw8S2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZDo6QmFja2VuZD4uClBsZWFzZSBsb29rIHRoZXJlIGZvciBhIGRldGFpbGVkIHJlZmVyZW5jZSBvZiB0aGUgZnVuY3Rpb25zLgoKPW92ZXIgNAoKPWN1dAoKc3ViIElQaG9uZUZpZWxkUGFyYW1ldGVyQnVpbGQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIHRha2UgY29uZmlnIGZyb20gZmllbGQgY29uZmlnCiAgICBteSAkRmllbGRDb25maWcgPSAkUGFyYW17RHluYW1pY0ZpZWxkQ29uZmlnfS0+e0NvbmZpZ307CiAgICBteSAkRmllbGROYW1lICAgPSAnRHluYW1pY0ZpZWxkXycgLiAkUGFyYW17RHluYW1pY0ZpZWxkQ29uZmlnfS0+e05hbWV9OwogICAgbXkgJEZpZWxkTGFiZWwgID0gJFBhcmFte0xhbmd1YWdlT2JqZWN0fS0+R2V0KCAkUGFyYW17RHluYW1pY0ZpZWxkQ29uZmlnfS0+e0xhYmVsfSApOwoKICAgIG15ICRWYWx1ZSA9ICcnOwoKICAgICMgc2V0IHRoZSBmaWVsZCB2YWx1ZSBvciBkZWZhdWx0CiAgICBpZiAoICRQYXJhbXtVc2VEZWZhdWx0VmFsdWV9ICkgewogICAgICAgIG15ICRUaW1lRGlmZiA9ICggZGVmaW5lZCAkRmllbGRDb25maWctPntEZWZhdWx0VmFsdWV9ID8gJEZpZWxkQ29uZmlnLT57RGVmYXVsdFZhbHVlfSA6IDAgKTsKCiAgICAgICAgIyBnZXQgY3VycmVudCBzeXN0ZW0gdGltZQogICAgICAgIG15ICRTeXN0ZW1UaW1lID0gJFNlbGYtPntUaW1lT2JqZWN0fS0+U3lzdGVtVGltZSgpOwoKICAgICAgICAjIGdldCB0aW1lIHN0cmluZyArICRUaW1lIGRpZmYKICAgICAgICAkVmFsdWUgPSAkU2VsZi0+e1RpbWVPYmplY3R9LT5TeXN0ZW1UaW1lMlRpbWVTdGFtcCgKICAgICAgICAgICAgU3lzdGVtVGltZSA9PiAkU3lzdGVtVGltZSArICRUaW1lRGlmZiwKICAgICAgICApOwoKICAgIH0KICAgICRWYWx1ZSA9ICRQYXJhbXtWYWx1ZX0gaWYgZGVmaW5lZCAkUGFyYW17VmFsdWV9OwoKICAgICMgY3JlYXRlIHRoZSBmaWVsZCBkZWZpbml0aW9uCiAgICBteSAkRGF0YSA9IHsKICAgICAgICBOYW1lICAgICAgPT4gJEZpZWxkTmFtZSwKICAgICAgICBUaXRsZSAgICAgPT4gJEZpZWxkTGFiZWwsCiAgICAgICAgRGF0YXR5cGUgID0+ICdEYXRlVGltZScsCiAgICAgICAgVmlld3R5cGUgID0+ICdQaWNrZXInLAogICAgICAgIE1hbmRhdG9yeSA9PiAkUGFyYW17TWFuZGF0b3J5fSwKICAgICAgICBEZWZhdWx0ICAgPT4gJFZhbHVlIHx8ICcnLAogICAgfTsKCiAgICByZXR1cm4gJERhdGE7Cn0KCnN1YiBJUGhvbmVGaWVsZFZhbHVlR2V0IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgJEZpZWxkTmFtZSA9ICdEeW5hbWljRmllbGRfJyAuICRQYXJhbXtEeW5hbWljRmllbGRDb25maWd9LT57TmFtZX07CgogICAgbXkgJFZhbHVlID0gJFBhcmFteyRGaWVsZE5hbWV9OwoKICAgICMgdGltZSB6b25lIHRyYW5zbGF0aW9uIGlmIG5lZWRlZAogICAgaWYgKCAkU2VsZi0+e0NvbmZpZ09iamVjdH0tPkdldCgnVGltZVpvbmVVc2VyJykgJiYgJFBhcmFte1VzZXJUaW1lWm9uZX0gJiYgJFZhbHVlICkgewoKICAgICAgICAjIGNvdmVydCAkVmFsdWUgdG8gYSBudW1lcmljIHRpbWUgZm9yIGNvbnZldHJzaW9ucwogICAgICAgIG15ICRTeXN0ZW1UaW1lID0gJFNlbGYtPntUaW1lT2JqZWN0fS0+VGltZVN0YW1wMlN5c3RlbVRpbWUoCiAgICAgICAgICAgIFN0cmluZyA9PiAkVmFsdWUsCiAgICAgICAgKTsKCiAgICAgICAgIyBjcmVhdGUgYSB0aW1lIG9iamVjdCBmb3IgdGhlcyB1c2VyIChiZWNhdXNlIG9mIHRoZSB0aW1lIHpvbmUpCiAgICAgICAgJFNlbGYtPntVc2VyVGltZU9iamVjdH0gPSBLZXJuZWw6OlN5c3RlbTo6VGltZS0+bmV3KAogICAgICAgICAgICAleyRTZWxmfSwKICAgICAgICAgICAgVXNlclRpbWVab25lID0+ICRQYXJhbXtVc2VyVGltZVpvbmV9LAogICAgICAgICk7CgogICAgICAgICMgc3VidHJhY3QgdGhlIHVzZXIgdGltZSB6b25lIGZyb20gdGhlIGN1cnJlbnQgdmFsdWUKICAgICAgICAkU3lzdGVtVGltZSA9ICRTeXN0ZW1UaW1lIC0gKCAkUGFyYW17VXNlclRpbWVab25lfSAqIDM2MDAgKTsKCiAgICAgICAgIyBjb252ZXJ0IG51bWVyaWMgdmFsdWUgYWdhaW4gdG8gc3RyaW5nCiAgICAgICAgJFZhbHVlID0gJFNlbGYtPntVc2VyVGltZU9iamVjdH0tPlN5c3RlbVRpbWUyVGltZVN0YW1wKCBTeXN0ZW1UaW1lID0+ICRTeXN0ZW1UaW1lLCApOwogICAgfQoKICAgIHJldHVybiAkVmFsdWU7Cn0KCnN1YiBJUGhvbmVGaWVsZFZhbHVlVmFsaWRhdGUgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGdldCB0aGUgZmllbGQgdmFsdWUgZnJvbSBwYXJhbQogICAgbXkgJFZhbHVlID0gJFBhcmFte1ZhbHVlfTsKCiAgICBteSAkU2VydmVyRXJyb3I7CiAgICBteSAkRXJyb3JNZXNzYWdlOwoKICAgICMgcGVyZm9ybSBuZWNlc3NhcnkgdmFsaWRhdGlvbnMKICAgIGlmICggJFBhcmFte01hbmRhdG9yeX0gJiYgJFZhbHVlIGVxICcnICkgewoKICAgICAgICByZXR1cm4gewogICAgICAgICAgICBTZXJ2ZXJFcnJvciAgPT4gMSwKICAgICAgICAgICAgRXJyb3JNZXNzYWdlID0+ICRFcnJvck1lc3NhZ2UsCiAgICAgICAgfTsKICAgIH0KCiAgICAjIHRyeSB0byBjb252ZXJ0IHZhbHVlIHRvIGEgU3lzdGVtVGltZQogICAgaWYgKCRWYWx1ZSkgewogICAgICAgIG15ICRTeXN0ZW1UaW1lID0gJFNlbGYtPntUaW1lT2JqZWN0fS0+VGltZVN0YW1wMlN5c3RlbVRpbWUoCiAgICAgICAgICAgIFN0cmluZyA9PiAkVmFsdWUsCiAgICAgICAgKTsKCiAgICAgICAgaWYgKCAhJFN5c3RlbVRpbWUgKSB7CiAgICAgICAgICAgIHJldHVybiB7CiAgICAgICAgICAgICAgICBTZXJ2ZXJFcnJvciAgPT4gMSwKICAgICAgICAgICAgICAgIEVycm9yTWVzc2FnZSA9PiAkRXJyb3JNZXNzYWdlLAogICAgICAgICAgICB9OwogICAgICAgIH0KICAgIH0KCiAgICAjIGNyZWF0ZSByZXN1bHRpbmcgc3RydWN0dXJlCiAgICBteSAkUmVzdWx0ID0gewogICAgICAgIFNlcnZlckVycm9yICA9PiAkU2VydmVyRXJyb3IsCiAgICAgICAgRXJyb3JNZXNzYWdlID0+ICRFcnJvck1lc3NhZ2UsCiAgICB9OwoKICAgIHJldHVybiAkUmVzdWx0Owp9CgpzdWIgX1RyYW5zZm9ybURhdGVTZWxlY3Rpb24gewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIHRpbWUgem9uZSB0cmFuc2xhdGlvbiBpZiBuZWVkZWQKICAgIGlmICggJFNlbGYtPntDb25maWdPYmplY3R9LT5HZXQoJ1RpbWVab25lVXNlcicpICYmICRQYXJhbXtVc2VyVGltZVpvbmV9ICkgewogICAgICAgIG15ICRTeXN0ZW1UaW1lID0gJFNlbGYtPntUaW1lT2JqZWN0fS0+VGltZVN0YW1wMlN5c3RlbVRpbWUoCiAgICAgICAgICAgIFN0cmluZyA9PiAkUGFyYW17VGltZVN0YW1wfSwKICAgICAgICApOwogICAgICAgICRTeXN0ZW1UaW1lID0gJFN5c3RlbVRpbWUgLSAoICRTZWxmLT57VXNlclRpbWVab25lfSAqIDM2MDAgKTsKCiAgICAgICAgJFNlbGYtPntVc2VyVGltZU9iamVjdH0gPSBLZXJuZWw6OlN5c3RlbTo6VGltZS0+bmV3KAogICAgICAgICAgICAleyRTZWxmfSwKICAgICAgICAgICAgVXNlclRpbWVab25lID0+ICRQYXJhbXtVc2VyVGltZVpvbmV9LAogICAgICAgICk7CgogICAgICAgICRQYXJhbXtUaW1lU3RhbXB9CiAgICAgICAgICAgID0gJFNlbGYtPntVc2VyVGltZU9iamVjdH0tPlN5c3RlbVRpbWUyVGltZVN0YW1wKCBTeXN0ZW1UaW1lID0+ICRTeXN0ZW1UaW1lLCApOwogICAgfQogICAgcmV0dXJuICRQYXJhbXtUaW1lU3RhbXB9Owp9CgoxOwoKPWJhY2sKCj1oZWFkMSBURVJNUyBBTkQgQ09ORElUSU9OUwoKVGhpcyBzb2Z0d2FyZSBpcyBwYXJ0IG9mIHRoZSBPVFJTIHByb2plY3QgKEw8aHR0cDovL290cnMub3JnLz4pLgoKVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQpkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgTDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQ+LgoKPWN1dAo=
IyAtLQojIEtlcm5lbC9TeXN0ZW0vRHluYW1pY0ZpZWxkL0RyaXZlci9pUGhvbmVEcm9wZG93bi5wbSAtIERyaXZlciBmb3IgRHluYW1pY0ZpZWxkIERyb3Bkb3duIGJhY2tlbmQKIyBDb3B5cmlnaHQgKEMpIDIwMDEtMjAxMyBPVFJTIEFHLCBodHRwOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEFHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2FncGwudHh0LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQ6OkRyaXZlcjo6aVBob25lRHJvcGRvd247Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7Cgp1c2UgS2VybmVsOjpTeXN0ZW06OlZhcmlhYmxlQ2hlY2sgcXcoOmFsbCk7Cgo9aGVhZDEgTkFNRQoKS2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZDo6RHJpdmVyOjppUGhvbmVEcm9wZG93bgoKPWhlYWQxIFNZTk9QU0lTCgpEeW5hbWljRmllbGRzIERyb3Bkb3duIGJhY2tlbmQgZHJpdmVyIGZvciBpUGhvbmVIYW5kbGUKCj1oZWFkMSBQVUJMSUMgSU5URVJGQUNFCgpUaGlzIG1vZHVsZSBpbXBsZW1lbnRzIHRoZSBwdWJsaWMgaW50ZXJmYWNlIG9mIEw8S2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZDo6QmFja2VuZD4uClBsZWFzZSBsb29rIHRoZXJlIGZvciBhIGRldGFpbGVkIHJlZmVyZW5jZSBvZiB0aGUgZnVuY3Rpb25zLgoKPW92ZXIgNAoKPWN1dAoKc3ViIElQaG9uZUZpZWxkUGFyYW1ldGVyQnVpbGQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIHRha2UgY29uZmlnIGZyb20gZmllbGQgY29uZmlnCiAgICBteSAkRmllbGRDb25maWcgPSAkUGFyYW17RHluYW1pY0ZpZWxkQ29uZmlnfS0+e0NvbmZpZ307CiAgICBteSAkRmllbGROYW1lICAgPSAnRHluYW1pY0ZpZWxkXycgLiAkUGFyYW17RHluYW1pY0ZpZWxkQ29uZmlnfS0+e05hbWV9OwogICAgbXkgJEZpZWxkTGFiZWwgID0gJFBhcmFte0xhbmd1YWdlT2JqZWN0fS0+R2V0KCAkUGFyYW17RHluYW1pY0ZpZWxkQ29uZmlnfS0+e0xhYmVsfSApOwoKICAgIG15ICRWYWx1ZSA9ICcnOwoKICAgICMgc2V0IHRoZSBmaWVsZCB2YWx1ZSBvciBkZWZhdWx0CiAgICBpZiAoICRQYXJhbXtVc2VEZWZhdWx0VmFsdWV9ICkgewogICAgICAgICRWYWx1ZSA9ICggZGVmaW5lZCAkRmllbGRDb25maWctPntEZWZhdWx0VmFsdWV9ID8gJEZpZWxkQ29uZmlnLT57RGVmYXVsdFZhbHVlfSA6ICcnICk7CiAgICB9CiAgICAkVmFsdWUgPSAkUGFyYW17VmFsdWV9IGlmIGRlZmluZWQgJFBhcmFte1ZhbHVlfTsKCiAgICAjIHNldCBQb3NzaWJsZVZhbHVlcwogICAgbXkgJFBvc3NpYmxlVmFsdWVzID0gJEZpZWxkQ29uZmlnLT57UG9zc2libGVWYWx1ZXN9OwoKICAgIGlmICggJEZpZWxkQ29uZmlnLT57VHJhbnNsYXRhYmxlVmFsdWVzfSApIHsKICAgICAgICBpZiAoIElzSGFzaFJlZldpdGhEYXRhKCRQb3NzaWJsZVZhbHVlcykgKSB7CiAgICAgICAgICAgIGZvciBteSAkUG9zc2libGVLZXkgKCBzb3J0IGtleXMgJXskUG9zc2libGVWYWx1ZXN9ICkgewogICAgICAgICAgICAgICAgbXkgJE9yaWdpbmFsVmFsdWUgPSAkUG9zc2libGVWYWx1ZXMtPnskUG9zc2libGVLZXl9OwogICAgICAgICAgICAgICAgJFBvc3NpYmxlVmFsdWVzLT57JFBvc3NpYmxlS2V5fQogICAgICAgICAgICAgICAgICAgID0gJFBhcmFte0xhbmd1YWdlT2JqZWN0fS0+R2V0KCRPcmlnaW5hbFZhbHVlKSB8fCAkT3JpZ2luYWxWYWx1ZTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICAjIHNldCBQb3NzaWJsZU5vbmUgYXR0cmlidXRlCiAgICBteSAkRmllbGRQb3NzaWJsZU5vbmU7CiAgICBpZiAoIGRlZmluZWQgJFBhcmFte092ZXJyaWRlUG9zc2libGVOb25lfSApIHsKICAgICAgICAkRmllbGRQb3NzaWJsZU5vbmUgPSAkUGFyYW17T3ZlcnJpZGVQb3NzaWJsZU5vbmV9OwogICAgfQogICAgZWxzZSB7CiAgICAgICAgJEZpZWxkUG9zc2libGVOb25lID0gJEZpZWxkQ29uZmlnLT57UG9zc2libGVOb25lfSB8fCAwOwogICAgfQoKICAgIGlmICgkRmllbGRQb3NzaWJsZU5vbmUpIHsKICAgICAgICAkUG9zc2libGVWYWx1ZXMtPnsnJ30gPSAnLSc7CiAgICB9CgogICAgIyBjcmVhdGUgdGhlIGZpZWxkIGRlZmluaXRpb24KICAgIG15ICREYXRhID0gewogICAgICAgIE5hbWUgICAgICA9PiAkRmllbGROYW1lLAogICAgICAgIFRpdGxlICAgICA9PiAkRmllbGRMYWJlbCwKICAgICAgICBEYXRhdHlwZSAgPT4gJ1RleHQnLAogICAgICAgIFZpZXd0eXBlICA9PiAnUGlja2VyJywKICAgICAgICBPcHRpb25zICAgPT4gJFBvc3NpYmxlVmFsdWVzLAogICAgICAgIE1hbmRhdG9yeSA9PiAkUGFyYW17TWFuZGF0b3J5fSwKICAgICAgICBEZWZhdWx0ICAgPT4gJFZhbHVlIHx8ICcnLAogICAgfTsKCiAgICByZXR1cm4gJERhdGE7Cn0KCnN1YiBJUGhvbmVGaWVsZFZhbHVlR2V0IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgJEZpZWxkTmFtZSA9ICdEeW5hbWljRmllbGRfJyAuICRQYXJhbXtEeW5hbWljRmllbGRDb25maWd9LT57TmFtZX07CgogICAgbXkgJFZhbHVlID0gJFBhcmFteyRGaWVsZE5hbWV9OwoKICAgIHJldHVybiAkVmFsdWU7Cn0KCnN1YiBJUGhvbmVGaWVsZFZhbHVlVmFsaWRhdGUgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGdldCB0aGUgZmllbGQgdmFsdWUgZnJvbSBwYXJhbQogICAgbXkgJFZhbHVlID0gJFBhcmFte1ZhbHVlfTsKCiAgICBteSAkU2VydmVyRXJyb3I7CiAgICBteSAkRXJyb3JNZXNzYWdlOwoKICAgICMgcGVyZm9ybSBuZWNlc3NhcnkgdmFsaWRhdGlvbnMKICAgIGlmICggJFBhcmFte01hbmRhdG9yeX0gJiYgJFZhbHVlIGVxICcnICkgewogICAgICAgICRTZXJ2ZXJFcnJvciA9IDE7CiAgICB9CiAgICBlbHNlIHsKCiAgICAgICAgIyBnZXQgcG9zc2libGUgdmFsdWVzIGxpc3QKICAgICAgICBteSAkUG9zc2libGVWYWx1ZXMgPSAkUGFyYW17RHluYW1pY0ZpZWxkQ29uZmlnfS0+e0NvbmZpZ30tPntQb3NzaWJsZVZhbHVlc307CgogICAgICAgICMgdmFsaWRhdGUgaWYgdmFsdWUgaXMgaW4gcG9zc2libGUgdmFsdWVzIGxpc3QgKGJ1dCBsZXQgcGFzcyBlbXB0eSB2YWx1ZXMpCiAgICAgICAgaWYgKCAkVmFsdWUgJiYgISRQb3NzaWJsZVZhbHVlcy0+eyRWYWx1ZX0gKSB7CiAgICAgICAgICAgICRTZXJ2ZXJFcnJvciAgPSAxOwogICAgICAgICAgICAkRXJyb3JNZXNzYWdlID0gJ1RoZSBmaWVsZCBjb250ZW50IGlzIGludmFsaWQnOwogICAgICAgIH0KICAgIH0KCiAgICAjIGNyZWF0ZSByZXN1bHRpbmcgc3RydWN0dXJlCiAgICBteSAkUmVzdWx0ID0gewogICAgICAgIFNlcnZlckVycm9yICA9PiAkU2VydmVyRXJyb3IsCiAgICAgICAgRXJyb3JNZXNzYWdlID0+ICRFcnJvck1lc3NhZ2UsCiAgICB9OwoKICAgIHJldHVybiAkUmVzdWx0Owp9CgoxOwoKPWJhY2sKCj1oZWFkMSBURVJNUyBBTkQgQ09ORElUSU9OUwoKVGhpcyBzb2Z0d2FyZSBpcyBwYXJ0IG9mIHRoZSBPVFJTIHByb2plY3QgKEw8aHR0cDovL290cnMub3JnLz4pLgoKVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQpkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgTDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQ+LgoKPWN1dAo=
IyAtLQojIEtlcm5lbC9TeXN0ZW0vRHluYW1pY0ZpZWxkL0RyaXZlci9pUGhvbmVUZXh0LnBtIC0gRHJpdmVyIGZvciBEeW5hbWljRmllbGQgVGV4dCBiYWNrZW5kCiMgQ29weXJpZ2h0IChDKSAyMDAxLTIwMTMgT1RSUyBBRywgaHR0cDovL290cnMuY29tLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChBR1BMKS4gSWYgeW91CiMgZGlkIG5vdCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9hZ3BsLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6OlN5c3RlbTo6RHluYW1pY0ZpZWxkOjpEcml2ZXI6OmlQaG9uZVRleHQ7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7Cgp1c2UgS2VybmVsOjpTeXN0ZW06OlZhcmlhYmxlQ2hlY2sgcXcoOmFsbCk7Cgo9aGVhZDEgTkFNRQoKS2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZDo6RHJpdmVyOjppUGhvbmVUZXh0Cgo9aGVhZDEgU1lOT1BTSVMKCkR5bmFtaWNGaWVsZHMgVGV4dCBiYWNrZW5kIGRyaXZlciBmb3IgaVBob25lSGFuZGxlCgo9aGVhZDEgUFVCTElDIElOVEVSRkFDRQoKVGhpcyBtb2R1bGUgaW1wbGVtZW50cyB0aGUgcHVibGljIGludGVyZmFjZSBvZiBMPEtlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQ6OkJhY2tlbmQ+LgpQbGVhc2UgbG9vayB0aGVyZSBmb3IgYSBkZXRhaWxlZCByZWZlcmVuY2Ugb2YgdGhlIGZ1bmN0aW9ucy4KCj1vdmVyIDQKCj1jdXQKCnN1YiBJUGhvbmVGaWVsZFBhcmFtZXRlckJ1aWxkIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyB0YWtlIGNvbmZpZyBmcm9tIGZpZWxkIGNvbmZpZwogICAgbXkgJEZpZWxkQ29uZmlnID0gJFBhcmFte0R5bmFtaWNGaWVsZENvbmZpZ30tPntDb25maWd9OwogICAgbXkgJEZpZWxkTmFtZSAgID0gJ0R5bmFtaWNGaWVsZF8nIC4gJFBhcmFte0R5bmFtaWNGaWVsZENvbmZpZ30tPntOYW1lfTsKICAgIG15ICRGaWVsZExhYmVsICA9ICRQYXJhbXtMYW5ndWFnZU9iamVjdH0tPkdldCggJFBhcmFte0R5bmFtaWNGaWVsZENvbmZpZ30tPntMYWJlbH0gKTsKCiAgICBteSAkVmFsdWUgPSAnJzsKCiAgICAjIHNldCB0aGUgZmllbGQgdmFsdWUgb3IgZGVmYXVsdAogICAgaWYgKCAkUGFyYW17VXNlRGVmYXVsdFZhbHVlfSApIHsKICAgICAgICAkVmFsdWUgPSAoIGRlZmluZWQgJEZpZWxkQ29uZmlnLT57RGVmYXVsdFZhbHVlfSA/ICRGaWVsZENvbmZpZy0+e0RlZmF1bHRWYWx1ZX0gOiAnJyApOwogICAgfQogICAgJFZhbHVlID0gJFBhcmFte1ZhbHVlfSBpZiBkZWZpbmVkICRQYXJhbXtWYWx1ZX07CgogICAgIyBjcmVhdGUgdGhlIGZpZWxkIGRlZmluaXRpb24KICAgIG15ICREYXRhID0gewogICAgICAgIE5hbWUgICAgICA9PiAkRmllbGROYW1lLAogICAgICAgIFRpdGxlICAgICA9PiAkRmllbGRMYWJlbCwKICAgICAgICBEYXRhdHlwZSAgPT4gJ1RleHQnLAogICAgICAgIFZpZXd0eXBlICA9PiAnSW5wdXQnLAogICAgICAgIE1pbiAgICAgICA9PiAxLAogICAgICAgIE1heCAgICAgICA9PiAyMDAsCiAgICAgICAgTWFuZGF0b3J5ID0+ICRQYXJhbXtNYW5kYXRvcnl9LAogICAgICAgIERlZmF1bHQgICA9PiAkVmFsdWUgfHwgJycsCiAgICB9OwoKICAgIHJldHVybiAkRGF0YTsKfQoKc3ViIElQaG9uZUZpZWxkVmFsdWVHZXQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAkRmllbGROYW1lID0gJ0R5bmFtaWNGaWVsZF8nIC4gJFBhcmFte0R5bmFtaWNGaWVsZENvbmZpZ30tPntOYW1lfTsKCiAgICBteSAkVmFsdWUgPSAkUGFyYW17JEZpZWxkTmFtZX07CgogICAgcmV0dXJuICRWYWx1ZTsKfQoKc3ViIElQaG9uZUZpZWxkVmFsdWVWYWxpZGF0ZSB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgZ2V0IHRoZSBmaWVsZCB2YWx1ZSBmcm9tIHBhcmFtCiAgICBteSAkVmFsdWUgPSAkUGFyYW17VmFsdWV9OwoKICAgIG15ICRTZXJ2ZXJFcnJvcjsKICAgIG15ICRFcnJvck1lc3NhZ2U7CgogICAgIyBwZXJmb3JtIG5lY2Vzc2FyeSB2YWxpZGF0aW9ucwogICAgaWYgKCAkUGFyYW17TWFuZGF0b3J5fSAmJiAkVmFsdWUgZXEgJycgKSB7CiAgICAgICAgJFNlcnZlckVycm9yID0gMTsKICAgIH0KCiAgICAjIGNyZWF0ZSByZXN1bHRpbmcgc3RydWN0dXJlCiAgICBteSAkUmVzdWx0ID0gewogICAgICAgIFNlcnZlckVycm9yICA9PiAkU2VydmVyRXJyb3IsCiAgICAgICAgRXJyb3JNZXNzYWdlID0+ICRFcnJvck1lc3NhZ2UsCiAgICB9OwoKICAgIHJldHVybiAkUmVzdWx0Owp9CgoxOwoKPWJhY2sKCj1oZWFkMSBURVJNUyBBTkQgQ09ORElUSU9OUwoKVGhpcyBzb2Z0d2FyZSBpcyBwYXJ0IG9mIHRoZSBPVFJTIHByb2plY3QgKEw8aHR0cDovL290cnMub3JnLz4pLgoKVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQpkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgTDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQ+LgoKPWN1dAo=
IyAtLQojIEtlcm5lbC9TeXN0ZW0vRHluYW1pY0ZpZWxkL0RyaXZlci9pUGhvbmVUZXh0QXJlYS5wbSAtIERyaXZlciBmb3IgRHluYW1pY0ZpZWxkIFRleHRBcmVhIGJhY2tlbmQKIyBDb3B5cmlnaHQgKEMpIDIwMDEtMjAxMyBPVFJTIEFHLCBodHRwOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEFHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2FncGwudHh0LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQ6OkRyaXZlcjo6aVBob25lVGV4dEFyZWE7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7Cgp1c2UgS2VybmVsOjpTeXN0ZW06OlZhcmlhYmxlQ2hlY2sgcXcoOmFsbCk7Cgo9aGVhZDEgTkFNRQoKS2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZDo6RHJpdmVyOjppUGhvbmVUZXh0QXJlYQoKPWhlYWQxIFNZTk9QU0lTCgpEeW5hbWljRmllbGRzIFRleHRBcmVhIGJhY2tlbmQgZHJpdmVyIGZvciBpUGhvbmVIYW5sZQoKPWhlYWQxIFBVQkxJQyBJTlRFUkZBQ0UKClRoaXMgbW9kdWxlIGltcGxlbWVudHMgdGhlIHB1YmxpYyBpbnRlcmZhY2Ugb2YgTDxLZXJuZWw6OlN5c3RlbTo6RHluYW1pY0ZpZWxkOjpCYWNrZW5kPi4KUGxlYXNlIGxvb2sgdGhlcmUgZm9yIGEgZGV0YWlsZWQgcmVmZXJlbmNlIG9mIHRoZSBmdW5jdGlvbnMuCgo9b3ZlciA0Cgo9Y3V0CgpzdWIgSVBob25lRmllbGRQYXJhbWV0ZXJCdWlsZCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgdGFrZSBjb25maWcgZnJvbSBmaWVsZCBjb25maWcKICAgIG15ICRGaWVsZENvbmZpZyA9ICRQYXJhbXtEeW5hbWljRmllbGRDb25maWd9LT57Q29uZmlnfTsKICAgIG15ICRGaWVsZE5hbWUgICA9ICdEeW5hbWljRmllbGRfJyAuICRQYXJhbXtEeW5hbWljRmllbGRDb25maWd9LT57TmFtZX07CiAgICBteSAkRmllbGRMYWJlbCAgPSAkUGFyYW17TGFuZ3VhZ2VPYmplY3R9LT5HZXQoICRQYXJhbXtEeW5hbWljRmllbGRDb25maWd9LT57TGFiZWx9ICk7CgogICAgbXkgJFZhbHVlID0gJyc7CgogICAgIyBzZXQgdGhlIGZpZWxkIHZhbHVlIG9yIGRlZmF1bHQKICAgIGlmICggJFBhcmFte1VzZURlZmF1bHRWYWx1ZX0gKSB7CiAgICAgICAgJFZhbHVlID0gKCBkZWZpbmVkICRGaWVsZENvbmZpZy0+e0RlZmF1bHRWYWx1ZX0gPyAkRmllbGRDb25maWctPntEZWZhdWx0VmFsdWV9IDogJycgKTsKICAgIH0KICAgICRWYWx1ZSA9ICRQYXJhbXtWYWx1ZX0gaWYgZGVmaW5lZCAkUGFyYW17VmFsdWV9OwoKICAgICMgY3JlYXRlIHRoZSBmaWVsZCBkZWZpbml0aW9uCiAgICBteSAkRGF0YSA9IHsKICAgICAgICBOYW1lICAgICAgPT4gJEZpZWxkTmFtZSwKICAgICAgICBUaXRsZSAgICAgPT4gJEZpZWxkTGFiZWwsCiAgICAgICAgRGF0YXR5cGUgID0+ICdUZXh0JywKICAgICAgICBWaWV3dHlwZSAgPT4gJ1RleHRBcmVhJywKICAgICAgICBNaW4gICAgICAgPT4gMSwKICAgICAgICBNYXggICAgICAgPT4gMjBfMDAwLAogICAgICAgIE1hbmRhdG9yeSA9PiAkUGFyYW17TWFuZGF0b3J5fSwKICAgICAgICBEZWZhdWx0ICAgPT4gJFZhbHVlIHx8ICcnLAogICAgfTsKCiAgICByZXR1cm4gJERhdGE7Cn0KCnN1YiBJUGhvbmVGaWVsZFZhbHVlR2V0IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgJEZpZWxkTmFtZSA9ICdEeW5hbWljRmllbGRfJyAuICRQYXJhbXtEeW5hbWljRmllbGRDb25maWd9LT57TmFtZX07CgogICAgbXkgJFZhbHVlID0gJFBhcmFteyRGaWVsZE5hbWV9OwoKICAgIHJldHVybiAkVmFsdWU7Cn0KCnN1YiBJUGhvbmVGaWVsZFZhbHVlVmFsaWRhdGUgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGdldCB0aGUgZmllbGQgdmFsdWUgZnJvbSB0aGUgcGFyYW0KICAgIG15ICRWYWx1ZSA9ICRQYXJhbXtWYWx1ZX07CgogICAgbXkgJFNlcnZlckVycm9yOwogICAgbXkgJEVycm9yTWVzc2FnZTsKCiAgICAjIHBlcmZvcm0gbmVjZXNzYXJ5IHZhbGlkYXRpb25zCiAgICBpZiAoICRQYXJhbXtNYW5kYXRvcnl9ICYmICRWYWx1ZSBlcSAnJyApIHsKICAgICAgICAkU2VydmVyRXJyb3IgPSAxOwogICAgfQoKICAgICMgY3JlYXRlIHJlc3VsdGluZyBzdHJ1Y3R1cmUKICAgIG15ICRSZXN1bHQgPSB7CiAgICAgICAgU2VydmVyRXJyb3IgID0+ICRTZXJ2ZXJFcnJvciwKICAgICAgICBFcnJvck1lc3NhZ2UgPT4gJEVycm9yTWVzc2FnZSwKICAgIH07CgogICAgcmV0dXJuICRSZXN1bHQ7Cn0KCjE7Cgo9YmFjawoKPWhlYWQxIFRFUk1TIEFORCBDT05ESVRJT05TCgpUaGlzIHNvZnR3YXJlIGlzIHBhcnQgb2YgdGhlIE9UUlMgcHJvamVjdCAoTDxodHRwOi8vb3Rycy5vcmcvPikuCgpUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQp0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChBR1BMKS4gSWYgeW91CmRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBMPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9hZ3BsLnR4dD4uCgo9Y3V0Cg==
IyAtLQojIEtlcm5lbC9TeXN0ZW0vRHluYW1pY0ZpZWxkL2lQaG9uZUJhY2tlbmQucG0gLSBJbnRlcmZhY2UgZm9yIER5bmFtaWNGaWVsZCBiYWNrZW5kcwojIENvcHlyaWdodCAoQykgMjAwMS0yMDEzIE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnBhY2thZ2UgS2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZDo6aVBob25lQmFja2VuZDsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCnVzZSBLZXJuZWw6OlN5c3RlbTo6VmFyaWFibGVDaGVjayBxdyg6YWxsKTsKCj1oZWFkMSBOQU1FCgpLZXJuZWw6OlN5c3RlbTo6RHluYW1pY0ZpZWxkOjppUGhvbmVCYWNrZW5kCgo9aGVhZDEgU1lOT1BTSVMKCkR5bmFtaWNGaWVsZHMgYmFja2VuZCBpbnRlcmZhY2UgZm9yIGlQaG9uZQoKPWhlYWQxIFBVQkxJQyBJTlRFUkZBQ0UKCj1vdmVyIDQKCj1jdXQKCj1pdGVtIElQaG9uZUZpZWxkUGFyYW1ldGVyQnVpbGQoKQoKY3JlYXRlcyB0aGUgZmllbGQgZGVmaW5pdGlvbiB0byBiZSB1c2VkIGluIGlwaG9uZSBlZGl0IG1hc2tzLgoKICAgIG15ICRGaWVsZERlZmluaXRpb24gPSAkQmFja2VuZE9iamVjdC0+SVBob25lRmllbGRQYXJhbWV0ZXJCdWlsZCgKICAgICAgICBEeW5hbWljRmllbGRDb25maWcgICA9PiAkRHluYW1pY0ZpZWxkQ29uZmlnLCAgICAgICMgQ29tcGxldGUgY29uZmlnIG9mIHRoZSBEeW5hbWljRmllbGQKICAgICAgICBWYWx1ZSAgICAgICAgICAgICAgICA9PiAnQW55IHZhbHVlJywgICAgICAgICAgICAgICMgT3B0aW9uYWwKICAgICAgICBNYW5kYXRvcnkgICAgICAgICAgICA9PiAxLCAgICAgICAgICAgICAgICAgICAgICAgICMgMCBvciAxLAogICAgICAgIFVzZURlZmF1bHRWYWx1ZSAgICAgID0+IDEsICAgICAgICAgICAgICAgICAgICAgICAgIyAwIG9yIDEsIDEgZGVmYXVsdAogICAgICAgIE92ZXJyaWRlUG9zc2libGVOb25lID0+IDEsICAgICAgICAgICAgICAgICAgICAgICAgIyBPcHRpb25hbCwgMCBvciAxLiBJZiBkZWZpbmVkIG9ydmVycmlkZXMgdGhlIFBvc3NpYmxlIE5vbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgIHNldHRpbmcgb2YgYWxsIGR5bmFtaWMgZmllbGRzICh3aGVyZSBhcHBsaWVzKSB3aXRoIHRoZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgZGVmaW5lZCB2YWx1ZQogICAgICAgIExhbmd1YWdlT2JqZWN0ICAgICAgID0+ICRMYW5ndWFnZU9iamVjdCwKICAgICk7CgogICAgUmV0dXJuczoKCiAgICAgICAgbXkgJEZpZWxkRGVmaW5pdGlvbiA9IHsKICAgICAgICAgICAgTmFtZSAgICAgICAgICAgPT4gJ3NvbWUgbmFtZScsICAgICAgIyBGaWVsZCBuYW1lICdEeWFubWljRmllbGRfTmFtZVgnCgogICAgICAgICAgICBUaXRsZSAgICAgICAgICA9PiAnc29tZSB0aXRsZScsICAgICAjIEZpZWxkIGxhYmVsICh0cmFuc2xhdGVkIGlmIGNhcGFibGUpCgogICAgICAgICAgICBEYXRhdHlwZSAgICAgICA9PiAkRGF0YXR5cGUsICAgICAgICAjIFRoZSB0eXBlIG9mIHRoYXQgdG8gaG9sZCwgT3B0aW9uczoKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICBEYXRlIHx8IFRpbWUgfHwgRGF0ZVRpbWUgfHwgVGV4dAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgIHx8IE51bWVyaWMKCiAgICAgICAgICAgIFZpZXd0eXBlICAgICAgID0+ICRWaWV3VHlwZSwgICAgICAgICMgVGhlIGZvcm1hdCBvZiB0aGUgZmllbGQgaW4gdGhlIGlQaG9uZSBBcHAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICBBdXRvQ29tcGxldGlvbiAoaW5wdXQgZmllbGQgd2l0aCBhbgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgIGF1dG8tY29tcGxldGlvbiBmZWF0dXJlOyBwb3NzaWJsZSB2YWx1ZXMKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgICBhcmUgbG9hZGVkIGR5bmFtaWNhbGx5IGZyb20gdGhlIHNlcnZlciB3aXRoCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgICAgdGhlIER5bmFtaWNPcHRpb25zKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgIFBpY2tlciAob3B0aW9uIGxpc3Qgd2l0aCB2YWx1ZXMgd2hpY2ggYXJlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgICAgcHJvdmlkZWQgd2l0aCB0aGUgT3B0aW9ucyBvciBEeW5hbWljT3B0aW9ucwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgIGF0dHJpYnV0ZSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICBFTWFpbCAoaW5wdXQgZmllbGQgZm9yIEUtTWFpbCBhZGRyZXNzZXMgd2l0aCBhCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgICAgc3VpdGFibGUga2V5Ym9hcmQpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgVVJMIChpbnB1dCBmaWVsZCBmb3IgVVJMcyB3aXRoIGEgc3VpdGFibGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgICBrZXlib2FyZCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICBQYXNzd29yZCAoaW5wdXQgZmllbGQgZm9yIHBhc3N3b3Jkcywgd2hpY2ggZG9lcwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgIG5vdCByZXZlYWwgdGhlIGVudGVyZWQgdGV4dCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICBJbnB1dCAoc2ltcGxlIGlucHV0IGZpZWxkKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgIFRleHRBcmVhIChtdWx0aS1saW5lIGlucHV0IGZpZWxkKQoKICAgICAgICAgICAgTWluICAgICAgICAgICAgID0+IDEsICAgICAgICAgICAgICAgIyBPcHRpb25hbCwgTWluaW11bSB2YWx1ZSBmb3IgbnVtZXJpYyBmb3JtIGZpZWxkcwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgIG9yIG1pbmltdW0gbGVuZ3RoIGZvciB0ZXh0IGZpZWxkcy4KCiAgICAgICAgICAgIE1heCAgICAgICAgICAgICA9PiAyLCAgICAgICAgICAgICAgICMgT3B0aW9uYWwsIE1heGltdW0gdmFsdWUgZm9yIG51bWVyaWMgZm9ybSBmaWVsZHMgb3IKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICBtYXhpbXVtIGxlbmd0aCBmb3IgdGV4dCBmaWVsZHMuCgogICAgICAgICAgICBPcHRpb25zICAgICAgICAgPT4geyAgICAgICAgICAgICAgICAjIE9wdGlvbmFsLCBMaXN0IG9mIG9wdGlvbnMgd2hpY2ggZGVmaW5lcyB0aGUgcmFuZ2UKICAgICAgICAgICAgICAgIDEgPT4gJ1ZhbHVlMScsICAgICAgICAgICAgICAgICAgIyAgICBvZiB2YWx1ZXMgZm9yIGFuIGVsZW1lbnQgb2YgVmlld3R5cGUgUGlja2VyLgogICAgICAgICAgICAgICAgMiA9PiAnVmFsdWUyJywgICAgICAgICAgICAgICAgICAjICAgIE9wdGlvbnMgaXMgbm90IHJlcXVpcmVkIGZvciBwaWNrZXIgZWxlbWVudHMKICAgICAgICAgICAgfSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICB3aXRoIERhdGF0eXBlIERhdGUsIFRpbWUgb3IgRGF0ZVRpbWUuCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgTWFuZGF0b3J5IGlmIHRoZSBEYXRhdHlwZSBpcyBub3QgRGF0ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICBUaW1lIHVuZCBEYXRlVGltZSwgdGhlIFZpZXd0eXBlIGlzIFBpY2tlciBhbmQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICBEeXluYW1pY09wdGlvbnMgaXMgbm90IHByb3ZpZGVkCgogICAgICAgICAgICBEeW5hbWljT3B0aW9ucyA9PiB7ICAgICAgICAgICAgICAgICAjIE9wdGlvbmFsLCBTaW1pbGFyIHRvIE9wdGlvbnMgYnV0IHRoZSBsaXN0IG9mCiAgICAgICAgICAgICAgICBPYmplY3QgICAgID0+ICdzb21lIG9iamVjdCcsICAgICMgICAgdmFsdWVzIGlzIG5vdCBmaXhlZCwgaW5zdGVhZCBhIGZ1bmN0aW9uIGlzCiAgICAgICAgICAgICAgICBNZXRob2QgICAgID0+ICdzb21lIG1ldGhvZCcsICAgICMgICAgY2FsbGVkIHRvIHJldHJlaXZlIHRoZSBwb3NzaWJsZSBvcHRpb25zLgogICAgICAgICAgICAgICAgUGFyYW1ldGVycyA9PiBbICAgICAgICAgICAgICAgICAjICAgIER5bmFtaWNPcHRpb25zIGlzIG5vdCByZXF1aXJlZCBmb3IgcGlja2VyCiAgICAgICAgICAgICAgICAgICAgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgZWxlbWVudHMgd2l0aCBEYXRhdHlwZSBEYXRlLCBUaW1lIG9yIERhdGVUaW1lLgogICAgICAgICAgICAgICAgICAgICAgICBQYXJhbTEgPT4gJ3NvbWUgZGF0YScsICAjICAgIE1hbmRhdG9yeSBpZiB0aGUgRGF0YXR5cGUgaXMgbm90IERhdGUsCiAgICAgICAgICAgICAgICAgICAgICAgIFBhcmFtMiA9PiAnc29tZSBkYXRhJywgICMgICAgVGltZSB1bmQgRGF0ZVRpbWUsIHRoZSBWaWV3dHlwZSBpcyBQaWNrZXIgYW5kCiAgICAgICAgICAgICAgICAgICAgfSwgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgRHl5bmFtaWNPcHRpb25zIGlzIG5vdCBwcm92aWRlZAogICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgfSwKCiAgICAgICAgICAgIEF1dG9GaWxsRWxlbWVudHMgPT4gWyAgICAgICAgICAgICAgICMgT3B0aW9uYWwsIFVzZWQgdG8gc2V0IGFub3RoZXIgZmllbGQgdmFsdWUKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBFbGVtZW50TmFtZSA9PiAnZmllbGQgbmFtZScsCiAgICAgICAgICAgICAgICAgICAgT2JqZWN0ICAgICAgPT4gJ3NvbWUgb2JqZWN0JywKICAgICAgICAgICAgICAgICAgICBNZXRob2QgICAgICA9PiAnc29tZSBtZXRob2QnLAogICAgICAgICAgICAgICAgICAgIFBhcmFtZXRlcnMgID0+IFsKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgUGFyYW0xID0+ICdzb21lIGRhdGEnLAogICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICBdLAoKICAgICAgICAgICAgTWFuZGF0b3J5ID0+IDAsICAgICAgICAgICAgICAgICAgICAgIyAwIHx8IDEKCiAgICAgICAgICAgIERlZmF1bHQgICA9PiAnc29tZSB2YWx1ZScsCiAgICAgICAgfTsKICAgIH07Cgo9Y3V0CgpzdWIgSVBob25lRmllbGRQYXJhbWV0ZXJCdWlsZCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBmb3IgbXkgJE5lZWRlZCAocXcoRHluYW1pY0ZpZWxkQ29uZmlnIExhbmd1YWdlT2JqZWN0KSkgewogICAgICAgIGlmICggISRQYXJhbXskTmVlZGVkfSApIHsKICAgICAgICAgICAgJFNlbGYtPntMb2dPYmplY3R9LT5Mb2coIFByaW9yaXR5ID0+ICdlcnJvcicsIE1lc3NhZ2UgPT4gIk5lZWQgJE5lZWRlZCEiICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgIyBjaGVjayBEeW5hbWljRmllbGRDb25maWcgKGdlbmVyYWwpCiAgICBpZiAoICFJc0hhc2hSZWZXaXRoRGF0YSggJFBhcmFte0R5bmFtaWNGaWVsZENvbmZpZ30gKSApIHsKICAgICAgICAkU2VsZi0+e0xvZ09iamVjdH0tPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gIlRoZSBmaWVsZCBjb25maWd1cmF0aW9uIGlzIGludmFsaWQiLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgICMgY2hlY2sgRHluYW1pY0ZpZWxkQ29uZmlnIChpbnRlcm5hbGx5KQogICAgZm9yIG15ICROZWVkZWQgKHF3KElEIEZpZWxkVHlwZSBPYmplY3RUeXBlIENvbmZpZyBOYW1lKSkgewogICAgICAgIGlmICggISRQYXJhbXtEeW5hbWljRmllbGRDb25maWd9LT57JE5lZWRlZH0gKSB7CiAgICAgICAgICAgICRTZWxmLT57TG9nT2JqZWN0fS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICROZWVkZWQgaW4gRHluYW1pY0ZpZWxkQ29uZmlnISIKICAgICAgICAgICAgKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICAjIHNldCB0aGUgZHluYW1pYyBmaWVsZCBzcGVjaWZpYyBiYWNrZW5kCiAgICBteSAkRHluYW1pY0ZpZWxkQmFja2VuZCA9ICdEeW5hbWljRmllbGQnIC4gJFBhcmFte0R5bmFtaWNGaWVsZENvbmZpZ30tPntGaWVsZFR5cGV9IC4gJ09iamVjdCc7CgogICAgaWYgKCAhJFNlbGYtPnskRHluYW1pY0ZpZWxkQmFja2VuZH0gKSB7CiAgICAgICAgJFNlbGYtPntMb2dPYmplY3R9LT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJCYWNrZW5kICRQYXJhbXtEeW5hbWljRmllbGRDb25maWd9LT57RmllbGRUeXBlfSBpcyBpbnZhbGlkISIKICAgICAgICApOwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICAjIHNldCB1c2UgZGVmYXVsdCB2YWx1ZSBhcyBkZWZhdWx0IGlmIG5vdCBzcGVjaWZpZWQKICAgIGlmICggIWRlZmluZWQgJFBhcmFte1VzZURlZmF1bHRWYWx1ZX0gKSB7CiAgICAgICAgJFBhcmFte1VzZURlZmF1bHRWYWx1ZX0gPSAxOwogICAgfQoKICAgICMgdmVyaWZ5IGlmIGZ1bmN0aW9uIGlzIGF2YWlsYWJsZQogICAgcmV0dXJuIGlmICEkU2VsZi0+eyREeW5hbWljRmllbGRCYWNrZW5kfS0+Y2FuKCdJUGhvbmVGaWVsZFBhcmFtZXRlckJ1aWxkJyk7CgogICAgIyBjYWxsIElQaG9uZUZpZWxkUGFyYW1ldGVyQnVpbGQgb24gdGhlIHNwZWNpZmljIGJhY2tlbmQKICAgIG15ICRGaWVsZERlZmluaXRpb24gPSAkU2VsZi0+eyREeW5hbWljRmllbGRCYWNrZW5kfS0+SVBob25lRmllbGRQYXJhbWV0ZXJCdWlsZCglUGFyYW0pOwoKICAgIHJldHVybiAkRmllbGREZWZpbml0aW9uOwoKfQoKPWl0ZW0gSVBob25lRmllbGRWYWx1ZUdldCgpCgpleHRyYWN0cyB0aGUgdmFsdWUgb2YgYSBkeW5hbWljIGZpZWxkIGZyb20gdGhlIHBhcmFtIG9iamVjdC4KCiAgICBteSAkVmFsdWUgPSAkQmFja2VuZE9iamVjdC0+SVBob25lRmllbGRWYWx1ZUdldCgKICAgICAgICBEeW5hbWljRmllbGRDb25maWcgICA9PiAkRHluYW1pY0ZpZWxkQ29uZmlnLCAgICAjIGNvbXBsZXRlIGNvbmZpZyBvZiB0aGUgRHluYW1pY0ZpZWxkCiAgICAgICAgRHluYW1pY0ZpZWxkX05hbWVYICAgPT4gJ0R5bmFtaWNGaWVsZFZhbHVlJywgICAgIyBSYXcgZmllbGQgdmFsdWUgd2hlcmUsIE5hbWVYIGlzIHRoZSBuYW1lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgb2YgdGhlIGZpbGVkCiAgICAgICAgVXNlclRpbWVab25lICAgICAgICAgPT4gLTYsCiAgICApOwoKICAgIFJldHVybnMgJFZhbHVlOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIGRlcGVuZGluZyBvbiBlYWNoIGZpZWxkIHR5cGUgZS5nLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAkVmFsdWUgPSAnYSB0ZXh0JzsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgJFZhbHVlID0gJzE5NzctMTItMTIgMTI6MDA6MDAnOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAkVmFsdWUgPSAxOwoKPWN1dAoKc3ViIElQaG9uZUZpZWxkVmFsdWVHZXQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgZm9yIG15ICROZWVkZWQgKHF3KER5bmFtaWNGaWVsZENvbmZpZykpIHsKICAgICAgICBpZiAoICEkUGFyYW17JE5lZWRlZH0gKSB7CiAgICAgICAgICAgICRTZWxmLT57TG9nT2JqZWN0fS0+TG9nKCBQcmlvcml0eSA9PiAnZXJyb3InLCBNZXNzYWdlID0+ICJOZWVkICROZWVkZWQhIiApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgICMgZGVmaW5lIHRyYW5zZm9ybSBkYXRlcyBwYXJhbWV0ZXIKICAgIGlmICggIWRlZmluZWQgJFBhcmFte1RyYW5zZm9ybURhdGVzfSApIHsKICAgICAgICAkUGFyYW17VHJhbnNmb3JtRGF0ZXN9ID0gMTsKICAgIH0KCiAgICAjIGNoZWNrIER5bmFtaWNGaWVsZENvbmZpZyAoZ2VuZXJhbCkKICAgIGlmICggIUlzSGFzaFJlZldpdGhEYXRhKCAkUGFyYW17RHluYW1pY0ZpZWxkQ29uZmlnfSApICkgewogICAgICAgICRTZWxmLT57TG9nT2JqZWN0fS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAiVGhlIGZpZWxkIGNvbmZpZ3VyYXRpb24gaXMgaW52YWxpZCIsCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgIyBjaGVjayBEeW5hbWljRmllbGRDb25maWcgKGludGVybmFsbHkpCiAgICBmb3IgbXkgJE5lZWRlZCAocXcoSUQgRmllbGRUeXBlIE9iamVjdFR5cGUgTmFtZSkpIHsKICAgICAgICBpZiAoICEkUGFyYW17RHluYW1pY0ZpZWxkQ29uZmlnfS0+eyROZWVkZWR9ICkgewogICAgICAgICAgICAkU2VsZi0+e0xvZ09iamVjdH0tPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCAkTmVlZGVkIGluIER5bmFtaWNGaWVsZENvbmZpZyEiCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgIyBzZXQgdGhlIGR5bmFtaWMgZmllbGQgc3BlY2lmaWMgYmFja2VuZAogICAgbXkgJER5bmFtaWNGaWVsZEJhY2tlbmQgPSAnRHluYW1pY0ZpZWxkJyAuICRQYXJhbXtEeW5hbWljRmllbGRDb25maWd9LT57RmllbGRUeXBlfSAuICdPYmplY3QnOwoKICAgIGlmICggISRTZWxmLT57JER5bmFtaWNGaWVsZEJhY2tlbmR9ICkgewogICAgICAgICRTZWxmLT57TG9nT2JqZWN0fS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAiQmFja2VuZCAkUGFyYW17RHluYW1pY0ZpZWxkQ29uZmlnfS0+e0ZpZWxkVHlwZX0gaXMgaW52YWxpZCEiCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgIyB2ZXJpZnkgaWYgZnVuY3Rpb24gaXMgYXZhaWxhYmxlCiAgICByZXR1cm4gaWYgISRTZWxmLT57JER5bmFtaWNGaWVsZEJhY2tlbmR9LT5jYW4oJ0lQaG9uZUZpZWxkVmFsdWVHZXQnKTsKCiAgICAjIHJldHVybiB2YWx1ZSBmcm9tIHRoZSBzcGVjaWZpYyBiYWNrZW5kCiAgICByZXR1cm4gJFNlbGYtPnskRHluYW1pY0ZpZWxkQmFja2VuZH0tPklQaG9uZUZpZWxkVmFsdWVHZXQoJVBhcmFtKTsKfQoKPWl0ZW0gSVBob25lRmllbGRWYWx1ZVZhbGlkYXRlKCkKCnZhbGlkYXRlIHRoZSBjdXJyZW50IHZhbHVlIGZvciB0aGUgZHluYW1pYyBmaWVsZAoKICAgIG15ICRSZXN1bHQgPSAkQmFja2VuZE9iamVjdC0+SVBob25lRmllbGRWYWx1ZVZhbGlkYXRlKAogICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyAgID0+ICREeW5hbWljRmllbGRDb25maWcsICAgICAgIyBjb21wbGV0ZSBjb25maWcgb2YgdGhlIER5bmFtaWNGaWVsZAogICAgICAgIFZhbHVlICAgICAgICAgICAgICAgID0+ICRWYWx1ZSwgICAgICAgICAgICAgICAgICAgIyBUaGUgY3VycmVudCBkeW5hbWljIGZpZWxkIHZhbHVlCiAgICAgICAgTWFuZGF0b3J5ICAgICAgICAgICAgPT4gMSwgICAgICAgICAgICAgICAgICAgICAgICAjIDAgb3IgMSwKICAgICk7CgogICAgUmV0dXJucwoKICAgICRSZXN1bHQgPSB7CiAgICAgICAgU2VydmVyRXJyb3IgICAgICAgID0+IDEsICAgICAgICAgICAgICAgICAgICAgICAgICAjIDAgb3IgMSwKICAgICAgICBFcnJvck1lc3NhZ2UgICAgICAgPT4gJEVycm9yTWVzc2FnZSwgICAgICAgICAgICAgICMgT3B0aW9uYWwgb3IgYSBkZWZhdWx0IHdpbGwgYmUgdXNlZCBpbiBlcnJvciBjYXNlCiAgICB9Cgo9Y3V0CgpzdWIgSVBob25lRmllbGRWYWx1ZVZhbGlkYXRlIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGlmICggISRQYXJhbXtEeW5hbWljRmllbGRDb25maWd9ICkgewogICAgICAgICRTZWxmLT57TG9nT2JqZWN0fS0+TG9nKCBQcmlvcml0eSA9PiAnZXJyb3InLCBNZXNzYWdlID0+ICJOZWVkIER5bmFtaWNGaWVsZENvbmZpZyEiICk7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgICMgY2hlY2sgRHluYW1pY0ZpZWxkQ29uZmlnIChnZW5lcmFsKQogICAgaWYgKCAhSXNIYXNoUmVmV2l0aERhdGEoICRQYXJhbXtEeW5hbWljRmllbGRDb25maWd9ICkgKSB7CiAgICAgICAgJFNlbGYtPntMb2dPYmplY3R9LT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJUaGUgZmllbGQgY29uZmlndXJhdGlvbiBpcyBpbnZhbGlkIiwKICAgICAgICApOwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICAjIGNoZWNrIER5bmFtaWNGaWVsZENvbmZpZyAoaW50ZXJuYWxseSkKICAgIGZvciBteSAkTmVlZGVkIChxdyhJRCBGaWVsZFR5cGUgT2JqZWN0VHlwZSBDb25maWcgTmFtZSkpIHsKICAgICAgICBpZiAoICEkUGFyYW17RHluYW1pY0ZpZWxkQ29uZmlnfS0+eyROZWVkZWR9ICkgewogICAgICAgICAgICAkU2VsZi0+e0xvZ09iamVjdH0tPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCAkTmVlZGVkIGluIER5bmFtaWNGaWVsZENvbmZpZyEiCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgIyBzZXQgdGhlIGR5bmFtaWMgZmllbGQgc3BlY2lmaWMgYmFja2VuZAogICAgbXkgJER5bmFtaWNGaWVsZEJhY2tlbmQgPSAnRHluYW1pY0ZpZWxkJyAuICRQYXJhbXtEeW5hbWljRmllbGRDb25maWd9LT57RmllbGRUeXBlfSAuICdPYmplY3QnOwoKICAgIGlmICggISRTZWxmLT57JER5bmFtaWNGaWVsZEJhY2tlbmR9ICkgewogICAgICAgICRTZWxmLT57TG9nT2JqZWN0fS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAiQmFja2VuZCAkUGFyYW17RHluYW1pY0ZpZWxkQ29uZmlnfS0+e0ZpZWxkVHlwZX0gaXMgaW52YWxpZCEiCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgIyB2ZXJpZnkgaWYgZnVuY3Rpb24gaXMgYXZhaWxhYmxlCiAgICByZXR1cm4gaWYgISRTZWxmLT57JER5bmFtaWNGaWVsZEJhY2tlbmR9LT5jYW4oJ0lQaG9uZUZpZWxkVmFsdWVWYWxpZGF0ZScpOwoKICAgICMgcmV0dXJuIHZhbGlkYXRpb24gc3RydWN0dXJlIGZyb20gdGhlIHNwZWNpZmljIGJhY2tlbmQKICAgIHJldHVybiAkU2VsZi0+eyREeW5hbWljRmllbGRCYWNrZW5kfS0+SVBob25lRmllbGRWYWx1ZVZhbGlkYXRlKCVQYXJhbSk7Cgp9CgoxOwoKPWJhY2sKCj1oZWFkMSBURVJNUyBBTkQgQ09ORElUSU9OUwoKVGhpcyBzb2Z0d2FyZSBpcyBwYXJ0IG9mIHRoZSBPVFJTIHByb2plY3QgKEw8aHR0cDovL290cnMub3JnLz4pLgoKVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQpkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgTDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQ+LgoKPWN1dAo=
IyAtLQojIEtlcm5lbC9TeXN0ZW0vV2ViL0ludGVyZmFjZWlQaG9uZUhhbmRsZS5wbSAtIHRoZSBhZ2VudCBpbnRlcmZhY2UgZmlsZSAoaW5jbC4gYXV0aCkKIyBDb3B5cmlnaHQgKEMpIDIwMDEtMjAxMyBPVFJTIEFHLCBodHRwOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEFHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2FncGwudHh0LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6U3lzdGVtOjpXZWI6OkludGVyZmFjZWlQaG9uZUhhbmRsZTsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCnVzZSBLZXJuZWw6OkNvbmZpZzsKdXNlIEtlcm5lbDo6U3lzdGVtOjpBdXRoOwp1c2UgS2VybmVsOjpTeXN0ZW06OkN1c3RvbWVyVXNlcjsKdXNlIEtlcm5lbDo6U3lzdGVtOjpEQjsKdXNlIEtlcm5lbDo6U3lzdGVtOjpFbmNvZGU7CnVzZSBLZXJuZWw6OlN5c3RlbTo6TG9nOwp1c2UgS2VybmVsOjpTeXN0ZW06Okdyb3VwOwp1c2UgS2VybmVsOjpTeXN0ZW06OmlQaG9uZTsKdXNlIEtlcm5lbDo6U3lzdGVtOjpKU09OOwp1c2UgS2VybmVsOjpTeXN0ZW06OkxpbmtPYmplY3Q7CnVzZSBLZXJuZWw6OlN5c3RlbTo6TG9jazsKdXNlIEtlcm5lbDo6U3lzdGVtOjpNYWluOwp1c2UgS2VybmVsOjpTeXN0ZW06OlF1ZXVlOwp1c2UgS2VybmVsOjpTeXN0ZW06OlNlcnZpY2U7CnVzZSBLZXJuZWw6OlN5c3RlbTo6U0xBOwp1c2UgS2VybmVsOjpTeXN0ZW06OlN0YXRlOwp1c2UgS2VybmVsOjpTeXN0ZW06OlRpY2tldDsKdXNlIEtlcm5lbDo6U3lzdGVtOjpUaW1lOwp1c2UgS2VybmVsOjpTeXN0ZW06OlR5cGU7CnVzZSBLZXJuZWw6OlN5c3RlbTo6VXNlcjsKdXNlIEtlcm5lbDo6U3lzdGVtOjpXZWI6OlJlcXVlc3Q7Cgo9aGVhZDEgTkFNRQoKS2VybmVsOjpTeXN0ZW06OldlYjo6SW50ZXJmYWNlaVBob25lSGFuZGxlIC0gdGhlIGlQaG9uZSBIYW5kbGUgd2ViIGludGVyZmFjZQoKPWhlYWQxIFNZTk9QU0lTCgp0aGUgZ2xvYmFsIGlQaG9uZSBIYW5kbGUgd2ViIGludGVyZmFjZQoKPWhlYWQxIFBVQkxJQyBJTlRFUkZBQ0UKCj1vdmVyIDQKCj1jdXQKCj1pdGVtIG5ldygpCgpjcmVhdGUgaVBob25lSGFuZGxlIHdlYiBpbnRlcmZhY2Ugb2JqZWN0CgogICAgdXNlIEtlcm5lbDo6U3lzdGVtOjpXZWI6OkludGVyZmFjZWlQaG9uZUhhbmRsZTsKCiAgICBteSAkSW50ZXJmYWNlQWdlbnQgPSBLZXJuZWw6OlN5c3RlbTo6V2ViOjpJbnRlcmZhY2VpUGhvbmVIYW5kbGUtPm5ldygKICAgICAgICBXZWJSZXF1ZXN0ID0+IENHSTo6RmFzdC0+bmV3KCksICMgb3B0aW9uYWwsIGUuIGcuIGlmIGZhc3QgY2dpIGlzIHVzZWQsIHRoZSBDR0kgb2JqZWN0IGlzIGFscmVhZHkgcHJvdmlkZWQKICAgICk7Cgo9Y3V0CgpzdWIgbmV3IHsKICAgIG15ICggJFR5cGUsICVQYXJhbSApID0gQF87CgogICAgIyBhbGxvY2F0ZSBuZXcgaGFzaCBmb3Igb2JqZWN0CiAgICBteSAkU2VsZiA9IHt9OwogICAgYmxlc3MoICRTZWxmLCAkVHlwZSApOwoKICAgICMgY3JlYXRlIGNvbW1vbiBvYmplY3RzCiAgICAkU2VsZi0+e0NvbmZpZ09iamVjdH0gPSBLZXJuZWw6OkNvbmZpZy0+bmV3KCk7CiAgICAkU2VsZi0+e0xvZ09iamVjdH0gICAgPSBLZXJuZWw6OlN5c3RlbTo6TG9nLT5uZXcoCiAgICAgICAgTG9nUHJlZml4ID0+ICdPVFJTLWlQaG9uZUhhbmRsZScsCiAgICAgICAgJXskU2VsZn0sCiAgICApOwogICAgJFNlbGYtPntFbmNvZGVPYmplY3R9ID0gS2VybmVsOjpTeXN0ZW06OkVuY29kZS0+bmV3KCAleyRTZWxmfSApOwogICAgJFNlbGYtPntNYWluT2JqZWN0fSAgID0gS2VybmVsOjpTeXN0ZW06Ok1haW4tPm5ldyggJXskU2VsZn0gKTsKICAgICRTZWxmLT57VGltZU9iamVjdH0gICA9IEtlcm5lbDo6U3lzdGVtOjpUaW1lLT5uZXcoICV7JFNlbGZ9ICk7CiAgICAkU2VsZi0+e1BhcmFtT2JqZWN0fSAgPSBLZXJuZWw6OlN5c3RlbTo6V2ViOjpSZXF1ZXN0LT5uZXcoCiAgICAgICAgJXskU2VsZn0sCiAgICAgICAgV2ViUmVxdWVzdCA9PiAkUGFyYW17V2ViUmVxdWVzdH0gfHwgMCwKICAgICk7CiAgICAkU2VsZi0+e0RCT2JqZWN0fSAgICAgICAgICAgPSBLZXJuZWw6OlN5c3RlbTo6REItPm5ldyggJXskU2VsZn0gKTsKICAgICRTZWxmLT57VXNlck9iamVjdH0gICAgICAgICA9IEtlcm5lbDo6U3lzdGVtOjpVc2VyLT5uZXcoICV7JFNlbGZ9ICk7CiAgICAkU2VsZi0+e0dyb3VwT2JqZWN0fSAgICAgICAgPSBLZXJuZWw6OlN5c3RlbTo6R3JvdXAtPm5ldyggJXskU2VsZn0gKTsKICAgICRTZWxmLT57UXVldWVPYmplY3R9ICAgICAgICA9IEtlcm5lbDo6U3lzdGVtOjpRdWV1ZS0+bmV3KCAleyRTZWxmfSApOwogICAgJFNlbGYtPntTZXJ2aWNlT2JqZWN0fSAgICAgID0gS2VybmVsOjpTeXN0ZW06OlNlcnZpY2UtPm5ldyggJXskU2VsZn0gKTsKICAgICRTZWxmLT57VHlwZU9iamVjdH0gICAgICAgICA9IEtlcm5lbDo6U3lzdGVtOjpUeXBlLT5uZXcoICV7JFNlbGZ9ICk7CiAgICAkU2VsZi0+e1N0YXRlT2JqZWN0fSAgICAgICAgPSBLZXJuZWw6OlN5c3RlbTo6U3RhdGUtPm5ldyggJXskU2VsZn0gKTsKICAgICRTZWxmLT57TG9ja09iamVjdH0gICAgICAgICA9IEtlcm5lbDo6U3lzdGVtOjpMb2NrLT5uZXcoICV7JFNlbGZ9ICk7CiAgICAkU2VsZi0+e1NMQU9iamVjdH0gICAgICAgICAgPSBLZXJuZWw6OlN5c3RlbTo6U0xBLT5uZXcoICV7JFNlbGZ9ICk7CiAgICAkU2VsZi0+e0N1c3RvbWVyVXNlck9iamVjdH0gPSBLZXJuZWw6OlN5c3RlbTo6Q3VzdG9tZXJVc2VyLT5uZXcoICV7JFNlbGZ9ICk7CiAgICAkU2VsZi0+e1RpY2tldE9iamVjdH0gICAgICAgPSBLZXJuZWw6OlN5c3RlbTo6VGlja2V0LT5uZXcoICV7JFNlbGZ9ICk7CiAgICAkU2VsZi0+e0xpbmtPYmplY3R9ICAgICAgICAgPSBLZXJuZWw6OlN5c3RlbTo6TGlua09iamVjdC0+bmV3KCAleyRTZWxmfSApOwogICAgJFNlbGYtPntKU09OT2JqZWN0fSAgICAgICAgID0gS2VybmVsOjpTeXN0ZW06OkpTT04tPm5ldyggJXskU2VsZn0gKTsKICAgICRTZWxmLT57aVBob25lT2JqZWN0fSAgICAgICA9IEtlcm5lbDo6U3lzdGVtOjppUGhvbmUtPm5ldyggJXskU2VsZn0gKTsKCiAgICAjIGdldCBsb2cgZmlsZW5hbWUKICAgICRTZWxmLT57RGVidWdMb2dGaWxlfSA9ICRTZWxmLT57Q29uZmlnT2JqZWN0fS0+R2V0KCdpUGhvbmU6OkxvZ0ZpbGUnKSB8fCAnJzsKCiAgICByZXR1cm4gJFNlbGY7Cn0KCj1pdGVtIFJ1bigpCgpleGVjdXRlIHRoZSBvYmplY3QKCiAgICBteSAkUmVzdWx0ID0gJEludGVyZmFjZUFnZW50LT5SdW4oKTsKClJldHVybnM6CiAgICAkUmVzdWx0ID0gewogICAgICAgIFN1Y2Nlc3MgPT4gMSwKICAgICAgICBEYXRhICAgID0+ICRBcnJheU9mSGFzaGVzUmVmLAogICAgfQoKT3I6CiAgICAkUmVzdWx0ID0gJEFycmF5UmVmLAoKT3I6CiAgICAkUmVzdWx0ID0gewogICAgICAgIFJlc3VsdCAgICAgICA9PiAwLAogICAgICAgIEVycm9yTWVzc2FnZSA9PiAnc29tZSBtZXNzYWdlJywKICAgIH0KCj1jdXQKCnN1YiBSdW4gewogICAgbXkgKCRTZWxmKSA9IEBfOwoKICAgICMgc2V0IGNvbW1vbiB2YXJpYWJsZXMKICAgIG15ICRVc2VyICAgPSAkU2VsZi0+e1BhcmFtT2JqZWN0fS0+R2V0UGFyYW0oIFBhcmFtID0+ICdVc2VyJyApICAgICB8fCAnJzsKICAgIG15ICRQdyAgICAgPSAkU2VsZi0+e1BhcmFtT2JqZWN0fS0+R2V0UGFyYW0oIFBhcmFtID0+ICdQYXNzd29yZCcgKSB8fCAnJzsKICAgIG15ICRPYmplY3QgPSAkU2VsZi0+e1BhcmFtT2JqZWN0fS0+R2V0UGFyYW0oIFBhcmFtID0+ICdPYmplY3QnICkgICB8fCAnJzsKICAgIG15ICRNZXRob2QgPSAkU2VsZi0+e1BhcmFtT2JqZWN0fS0+R2V0UGFyYW0oIFBhcmFtID0+ICdNZXRob2QnICkgICB8fCAnJzsKICAgIG15ICREYXRhICAgPSAkU2VsZi0+e1BhcmFtT2JqZWN0fS0+R2V0UGFyYW0oIFBhcmFtID0+ICdEYXRhJyApOwogICAgbXkgJFBhcmFtU2NhbGFyID0gJFNlbGYtPntKU09OT2JqZWN0fS0+RGVjb2RlKCBEYXRhID0+ICREYXRhICk7CgogICAgbXkgJVBhcmFtOwogICAgaWYgKCRQYXJhbVNjYWxhcikgewogICAgICAgICVQYXJhbSA9ICV7JFBhcmFtU2NhbGFyfTsKICAgIH0KCiAgICAjIGluYm91bmQgbG9nCiAgICBpZiAoICRTZWxmLT57Q29uZmlnT2JqZWN0fS0+R2V0KCdpUGhvbmU6OkRlYnVnTG9nJykgKSB7CiAgICAgICAgbXkgJE1lc3NhZ2UgPSAnVXNlcj0nIC4gJFVzZXIgLiAnJlBhc3N3b3JkPSoqKionIC4gJyZPYmplY3Q9JyAuICRPYmplY3QKICAgICAgICAgICAgLiAnJk1ldGhvZD0nIC4gJE1ldGhvZCAuICcmRGF0YT0nIC4gJERhdGE7CgogICAgICAgICRTZWxmLT5fTG9nKAogICAgICAgICAgICBEaXJlY3Rpb24gPT4gJ0luYm91bmQnLAogICAgICAgICAgICBNZXNzYWdlICAgPT4gJE1lc3NhZ2UsCiAgICAgICAgKTsKICAgIH0KCiAgICAjIGNoZWNrIG5lZWRlZAogICAgaWYgKCAhJFVzZXIgfHwgISRPYmplY3QgfHwgISRNZXRob2QgKSB7CiAgICAgICAgbXkgJE1lc3NhZ2UgPSAiTmVlZCBVc2VyLCBPYmplY3QgYW5kIE1ldGhvZCEiOwogICAgICAgICRTZWxmLT57TG9nT2JqZWN0fS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAkTWVzc2FnZSwKICAgICAgICApOwoKICAgICAgICByZXR1cm4gJFNlbGYtPl9SZXN1bHQoCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFN1Y2Nlc3MgICAgICA9PiAwLAogICAgICAgICAgICAgICAgRXJyb3JNZXNzYWdlID0+ICRNZXNzYWdlLAogICAgICAgICAgICB9LAogICAgICAgICk7CiAgICB9CgogICAgIyBhZ2VudCBhdXRoCiAgICBteSAlUGFyYW1GaXhlZDsKICAgIGlmICgxKSB7CiAgICAgICAgbXkgJEF1dGhPYmplY3QgPSBLZXJuZWw6OlN5c3RlbTo6QXV0aC0+bmV3KCAleyRTZWxmfSApOwogICAgICAgIG15ICRVc2VyTG9naW4gPSAkQXV0aE9iamVjdC0+QXV0aCggVXNlciA9PiAkVXNlciwgUHcgPT4gJFB3ICk7CgogICAgICAgIGlmICggISRVc2VyTG9naW4gKSB7CiAgICAgICAgICAgIG15ICRNZXNzYWdlID0gIkF1dGggZm9yIHVzZXIgJFVzZXIgZmFpbGVkISI7CiAgICAgICAgICAgICRTZWxmLT57TG9nT2JqZWN0fS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ25vdGljZScsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAkTWVzc2FnZSwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgcmV0dXJuICRTZWxmLT5fUmVzdWx0KAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFN1Y2Nlc3MgICAgICA9PiAwLAogICAgICAgICAgICAgICAgICAgIEVycm9yTWVzc2FnZSA9PiAkTWVzc2FnZSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICAjIHNldCB1c2VyIGlkCiAgICAgICAgbXkgJFVzZXJJRCA9ICRTZWxmLT57VXNlck9iamVjdH0tPlVzZXJMb29rdXAoCiAgICAgICAgICAgIFVzZXJMb2dpbiA9PiAkVXNlckxvZ2luLAogICAgICAgICk7CiAgICAgICAgaWYgKCAhJFVzZXJJRCApIHsKICAgICAgICAgICAgcmV0dXJuICRTZWxmLT5fUmVzdWx0KAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFN1Y2Nlc3MgICAgICA9PiAwLAogICAgICAgICAgICAgICAgICAgIEVycm9yTWVzc2FnZSA9PiAiVXNlciAkVXNlckxvZ2luIG5vdCBmb3VuZCwgVXNlcklEIGNhbiBub3QgYmUgc2V0ISIsCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgJFBhcmFtRml4ZWR7VXNlcklEfSA9ICRVc2VySUQ7CiAgICB9CgogICAgIyBzeXN0ZW0gYXV0aAogICAgIyBUaGlzIGNvZGUgaXMgbm90IG5lZWRlZCBhbmQgaGFzIHRvIGJlIHJlbW92ZWQhCiAgICBlbHNlIHsKICAgICAgICBteSAkUmVxdWlyZWRVc2VyICAgICA9ICRTZWxmLT57Q29uZmlnT2JqZWN0fS0+R2V0KCdTT0FQOjpVc2VyJyk7CiAgICAgICAgbXkgJFJlcXVpcmVkUGFzc3dvcmQgPSAkU2VsZi0+e0NvbmZpZ09iamVjdH0tPkdldCgnU09BUDo6UGFzc3dvcmQnKTsKCiAgICAgICAgaWYgKAogICAgICAgICAgICAhZGVmaW5lZCAkUmVxdWlyZWRVc2VyCiAgICAgICAgICAgIHx8ICFsZW5ndGggJFJlcXVpcmVkVXNlcgogICAgICAgICAgICB8fCAhZGVmaW5lZCAkUmVxdWlyZWRQYXNzd29yZCB8fCAhbGVuZ3RoICRSZXF1aXJlZFBhc3N3b3JkCiAgICAgICAgICAgICkKICAgICAgICB7CiAgICAgICAgICAgICRTZWxmLT57TG9nT2JqZWN0fS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ25vdGljZScsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAnU09BUDo6VXNlciBvciBTT0FQOjpQYXNzd29yZCBpcyBlbXB0eSwgU09BUCBhY2Nlc3MgZGVuaWVkIScsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybiAkU2VsZi0+X1Jlc3VsdCgpOwogICAgICAgIH0KCiAgICAgICAgaWYgKCAkVXNlciBuZSAkUmVxdWlyZWRVc2VyIHx8ICRQdyBuZSAkUmVxdWlyZWRQYXNzd29yZCApIHsKICAgICAgICAgICAgJFNlbGYtPntMb2dPYmplY3R9LT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnbm90aWNlJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJBdXRoIGZvciB1c2VyICRVc2VyIGZhaWxlZCEiLAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm4gJFNlbGYtPl9SZXN1bHQoKTsKICAgICAgICB9CiAgICB9CgogICAgaWYgKCAhJFNlbGYtPnskT2JqZWN0fSAmJiAkT2JqZWN0IG5lICdDdXN0b21PYmplY3QnICkgewogICAgICAgIG15ICRNZXNzYWdlID0gIk5vIHN1Y2ggT2JqZWN0ICRPYmplY3QhIjsKICAgICAgICAkU2VsZi0+e0xvZ09iamVjdH0tPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gJE1lc3NhZ2UsCiAgICAgICAgKTsKICAgICAgICByZXR1cm4gJFNlbGYtPl9SZXN1bHQoCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFN1Y2Nlc3MgICAgICA9PiAwLAogICAgICAgICAgICAgICAgRXJyb3JNZXNzYWdlID0+ICRNZXNzYWdlLAogICAgICAgICAgICB9LAogICAgICAgICk7CiAgICB9CgogICAgIyBjaGVjayBpZiBtZXRob2QgZXhpc3RzIGluIG9iamVjdHMgb3RoZXIgdGhhbiAnQ3VzdG9tT2JqZWN0JwogICAgaWYgKAogICAgICAgICggJFNlbGYtPnskT2JqZWN0fSAmJiAhJFNlbGYtPnskT2JqZWN0fS0+Y2FuKCRNZXRob2QpICkKICAgICAgICAmJiAhJFNlbGYtPmNhbigkTWV0aG9kKQogICAgICAgICkKICAgIHsKICAgICAgICBteSAkTWVzc2FnZSA9ICJObyBzdWNoIG1ldGhvZCAnJE1ldGhvZCcgaW4gJyRPYmplY3QnISI7CiAgICAgICAgJFNlbGYtPntMb2dPYmplY3R9LT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICRNZXNzYWdlLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuICRTZWxmLT5fUmVzdWx0KAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBTdWNjZXNzICAgICAgPT4gMCwKICAgICAgICAgICAgICAgIEVycm9yTWVzc2FnZSA9PiAkTWVzc2FnZSwKICAgICAgICAgICAgfSwKICAgICAgICApOwogICAgfQogICAgZWxzaWYgKCAkT2JqZWN0IGVxICdDdXN0b21PYmplY3QnICkgewoKICAgICAgICAjIGNoZWNrIGlmIG1ldGhvZCBleGlzdHMgaW4gaVBob25lT2JqZWN0CiAgICAgICAgaWYgKCAhJFNlbGYtPntpUGhvbmVPYmplY3R9LT5jYW4oJE1ldGhvZCkgKSB7CiAgICAgICAgICAgIG15ICRNZXNzYWdlID0gIk5vIHN1Y2ggbWV0aG9kICckTWV0aG9kJyBpbiAnJE9iamVjdCchIjsKICAgICAgICAgICAgJFNlbGYtPntMb2dPYmplY3R9LT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gJE1lc3NhZ2UsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybiAkU2VsZi0+X1Jlc3VsdCgKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBTdWNjZXNzICAgICAgPT4gMCwKICAgICAgICAgICAgICAgICAgICBFcnJvck1lc3NhZ2UgPT4gJE1lc3NhZ2UsCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICApOwogICAgICAgIH0KICAgIH0KCiAgICAjIG9iamVjdCB3aGl0ZSBsaXN0CiAgICBteSAkT2JqZWN0V2hpdGVMaXN0ID0gJFNlbGYtPntDb25maWdPYmplY3R9LT5HZXQoJ2lQaG9uZTo6QVBJOjpPYmplY3QnKTsKICAgIGlmICgkT2JqZWN0V2hpdGVMaXN0KSB7CiAgICAgICAgaWYgKCAhZGVmaW5lZCAkT2JqZWN0V2hpdGVMaXN0LT57JE9iamVjdH0gKSB7CiAgICAgICAgICAgIG15ICRNZXNzYWdlID0gIk5vIGFjY2VzcyB0byAnJE9iamVjdCchIjsKICAgICAgICAgICAgJFNlbGYtPntMb2dPYmplY3R9LT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gJE1lc3NhZ2UsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybiAkU2VsZi0+X1Jlc3VsdCgKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBTdWNjZXNzICAgICAgPT4gMCwKICAgICAgICAgICAgICAgICAgICBFcnJvck1lc3NhZ2UgPT4gJE1lc3NhZ2UsCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICApOwogICAgICAgIH0KICAgICAgICBpZiAoICRPYmplY3RXaGl0ZUxpc3QtPnskT2JqZWN0fSAmJiAkTWV0aG9kICF+IC8kT2JqZWN0V2hpdGVMaXN0LT57JE9iamVjdH0vICkgewogICAgICAgICAgICBteSAkTWVzc2FnZSA9ICJObyBhY2Nlc3MgbWV0aG9kICckTWV0aG9kKCknIGZyb20gJyRPYmplY3QnISI7CiAgICAgICAgICAgICRTZWxmLT57TG9nT2JqZWN0fS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICRNZXNzYWdlLAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm4gJFNlbGYtPl9SZXN1bHQoCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgU3VjY2VzcyAgICAgID0+IDAsCiAgICAgICAgICAgICAgICAgICAgRXJyb3JNZXNzYWdlID0+ICRNZXNzYWdlLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICB9CgogICAgIyBjbGVhbnVwIHBhcmFtcyBpUGhvbmUgYXBwbGljYXRpb24gZG9lcyBub3Qgc2VuZCBlbXB0eSB2YWx1ZXMsIGJ1dCBzYW1lIG5hbWUgYXMgcGFyYW1ldGVyIGFzOgogICAgIyBUaWNrZXRJRCA9PiAnVGlja2V0SUQnLCB0aGlzIHZhbHVlcyB3aWxsIG5lZWQgdG8gYmUgc2V0IGFzIGVtcHR5LCBzZWUgYnVnIzk3NTIKICAgIFBBUkFNTkFNRToKICAgIGZvciBteSAkUGFyYW1OYW1lICggc29ydCBrZXlzICVQYXJhbSApIHsKICAgICAgICBuZXh0IFBBUkFNTkFNRSBpZiAhJFBhcmFteyRQYXJhbU5hbWV9OwogICAgICAgIG5leHQgUEFSQU1OQU1FIGlmICRQYXJhbXskUGFyYW1OYW1lfSBuZSAiJFBhcmFtTmFtZSI7CiAgICAgICAgJFBhcmFteyRQYXJhbU5hbWV9ID0gJyc7CiAgICB9CgogICAgIyBleGVjdXRlIGlQaG9uZU9iamVjdCBtZXRob2RzCiAgICBpZiAoICRPYmplY3QgZXEgJ0N1c3RvbU9iamVjdCcgfHwgJE9iamVjdCBlcSAnaVBob25lT2JqZWN0JyApIHsKCiAgICAgICAgbXkgQFJlc3VsdCA9ICRTZWxmLT57aVBob25lT2JqZWN0fS0+JE1ldGhvZCgKICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICAgICAlUGFyYW1GaXhlZCwKICAgICAgICApOwogICAgICAgIHJldHVybiAkU2VsZi0+X1Jlc3VsdCggXEBSZXN1bHQgKTsKICAgIH0KCiAgICAjIGV4ZWN1dGUgb3RoZXIgb2JqZWN0IG1ldGhvZHMKICAgIGVsc2UgewogICAgICAgIG15IEBSZXN1bHQgPSAkU2VsZi0+eyRPYmplY3R9LT4kTWV0aG9kKAogICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgICAgICVQYXJhbUZpeGVkLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuICRTZWxmLT5fUmVzdWx0KCBcQFJlc3VsdCApOwogICAgfQp9Cgo9aXRlbSBfUmVzdWx0KCkKCmVuY29kZXMgdGhlIHJlc3VsdCBhcyBhIEpTT04gb2JqZWN0CgogICAgbXkgJFJlc3VsdCA9ICRJbnRlcmZhY2VBZ2VudC0+X1Jlc3VsdCgKICAgICAgICAkQXJyYXlSZWYsICAgICAgICAgICNPcHRpb25hbCwKICAgIH07CgpPUjoKICAgIG15ICRSZXN1bHQgPSAkSW50ZXJmYWNlQWdlbnQtPl9SZXN1bHQoCiAgICAgICAgU3VjY2VzcyA9PiAxLCAgICAgICAgICAgICAgICAgICAgIyBPcHRpb25hbAogICAgICAgIERhdGEgICAgPT4gJEFycmF5SGFzaFJlZiAgICAgICAgICMgT3B0aW9uYWwsIE1hbmRhdG9yeSBpZiBTdWNjY2VzcyBpcyAxCiAgICAgICAgTWVzc2FnZSA9PiAnc29tZSBlcnJyb3IgbWVzc2FnZScgIyBPcHRpb25hbAogICAgKTsKClJldHVybnMgSlNPTiByZXByZXNlbnRhdGlvbiBvZjoKICAgICRSZXN1bHQgPSB7CiAgICAgICAgU3VjY2VzcyA9PiAnc3VjY2Vzc2Z1bCcsCiAgICAgICAgRGF0YSAgICA9PiAkQXJyYXlPZkhhc2hlc1JlZiwKICAgIH0KCk9yIEpTT04gcmVwcmVzZXRhdGlvbiBvZjoKICAgICRSZXN1bHQgPSB7CiAgICAgICAgUmVzdWx0ICAgICAgID0+ICdmYWlsZXMnLAogICAgICAgIE1lc3NhZ2UgPT4gJ3NvbWUgbWVzc2FnZScsCiAgICB9Cgo9Y3V0CgpzdWIgX1Jlc3VsdCB7CiAgICBteSAoICRTZWxmLCAkUmVzdWx0ICkgPSBAXzsKCiAgICBteSAlUmVzdWx0UHJvdG9jb2w7CgogICAgaWYgKCRSZXN1bHQpIHsKCiAgICAgICAgIyB0aGlzIG1ldGhvZCBpcyBzdGlsbCBuZWVkZWQgZm9yIG90aGVyIG9iamVjdHMgdGhhbiBDdXN0b21PYmplY3QKICAgICAgICAjIHRoaXMgbWV0aG9kIGlzIGFsc28gdXNlZCBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eSBvZiBub3QgbWlncmF0ZWQgQ3VzdG9tT2JqZWN0IGZ1bmN0aW9ucwogICAgICAgIGlmICggcmVmICRSZXN1bHQgZXEgJ0FSUkFZJyApIHsKCiAgICAgICAgICAgICMgLTEgcmVzcG9uc2UgbWVhbnMgYW4gZXJyb3IKICAgICAgICAgICAgaWYgKCBkZWZpbmVkIEB7JFJlc3VsdH1bMF0gJiYgQHskUmVzdWx0fVswXSBlcSAtMSApIHsKICAgICAgICAgICAgICAgICRSZXN1bHRQcm90b2NvbHtSZXN1bHR9ID0gJ2ZhaWxlZCc7CgogICAgICAgICAgICAgICAgIyBnZXQgbGFzdCBsb2dlZCBlcnJvciBhbmQgc2V0IGlzIGFzIHRoZSBlcnJvciBtZXNzYWdlCiAgICAgICAgICAgICAgICBmb3IgbXkgJEtleSAocXcoZXJyb3Igbm90aWNlKSkgewogICAgICAgICAgICAgICAgICAgICRSZXN1bHRQcm90b2NvbHtNZXNzYWdlfSA9ICRTZWxmLT57TG9nT2JqZWN0fS0+R2V0TG9nRW50cnkoCiAgICAgICAgICAgICAgICAgICAgICAgIFR5cGUgPT4gJEtleSwKICAgICAgICAgICAgICAgICAgICAgICAgV2hhdCA9PiAnTWVzc2FnZScsCiAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICBsYXN0IGlmICRSZXN1bHRQcm90b2NvbHtNZXNzYWdlfTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyBvdGhlcndpc2UgaXMgYWx3YXlzIHN1Y2Nlc3NmdWwKICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAkUmVzdWx0UHJvdG9jb2x7UmVzdWx0fSA9ICdzdWNjZXNzZnVsJzsKICAgICAgICAgICAgICAgICRSZXN1bHRQcm90b2NvbHtEYXRhfSAgID0gJFJlc3VsdDsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgIyB0aGlzIG1ldGhvZCB3aWxsIGhhdmUgbW9yZSBjb250cm9sIG92ZXIgdGhlIGVycm9yIG1lc3NhZ2VzCiAgICAgICAgZWxzaWYgKCByZWYgJFJlc3VsdCBlcSAnSEFTSCcgKSB7CgogICAgICAgICAgICAjIGNoZWNrIGZvciBhIHRydWUgdmFsdWUgaW4gU3VjY2VzcyBrZXkKICAgICAgICAgICAgaWYgKCBkZWZpbmVkICRSZXN1bHQtPntTdWNjZXNzfSAmJiAkUmVzdWx0LT57U3VjY2Vzc30gPT0gMSApIHsKICAgICAgICAgICAgICAgICRSZXN1bHRQcm90b2NvbHtSZXN1bHR9ID0gJ3N1Y2Nlc3NmdWwnOwogICAgICAgICAgICAgICAgJFJlc3VsdFByb3RvY29se0RhdGF9ICAgPSAkUmVzdWx0LT57RGF0YX07CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgb3RoZXJ3aXNlIGlzIGFuIGVycm9yCiAgICAgICAgICAgIGVsc2lmICggZGVmaW5lZCAkUmVzdWx0LT57U3VjY2Vzc30gJiYgISRSZXN1bHQtPntTdWNjZXNzfSApIHsKICAgICAgICAgICAgICAgICRSZXN1bHRQcm90b2NvbHtSZXN1bHR9ID0gJ2ZhaWxlZCcsCiAgICAgICAgICAgICAgICAgICAgJFJlc3VsdFByb3RvY29se01lc3NhZ2V9CiAgICAgICAgICAgICAgICAgICAgPSAkUmVzdWx0LT57RXJyb3JNZXNzYWdlfQogICAgICAgICAgICAgICAgICAgIHx8ICdVbmtub3duIEVycm9yLCBwbGFzZSBjb250YWN0IHN5c3RlbSBhZG1pbmlzdHJhdG9yIHRvIGNoZWNrIE9UUlMgTG9ncyEnOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAjIHN1Y2Nlc3MgZmFsbGJhY2sgaWYgcmVzdWx0IGlzIG5vdCBhbiBBUlJBWSBvciBIQVNICiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICRSZXN1bHRQcm90b2NvbHtSZXN1bHR9ID0gJ3N1Y2Nlc3NmdWwnOwogICAgICAgICAgICAkUmVzdWx0UHJvdG9jb2x7RGF0YX0gICA9ICRSZXN1bHQ7CiAgICAgICAgfQogICAgfQoKICAgICMgZmFpbGVkIGZhbGxiYWNrIGlmIHRoZXJlIHdhcyBubyByZXNwb25zZQogICAgZWxzZSB7CiAgICAgICAgJFJlc3VsdFByb3RvY29se1Jlc3VsdH0gPSAnZmFpbGVkJzsKCiAgICAgICAgIyBnZXQgbGFzdCBsb2dlZCBlcnJvciBhbmQgc2V0IGlzIGFzIHRoZSBlcnJvciBtZXNzYWdlCiAgICAgICAgZm9yIG15ICRLZXkgKHF3KGVycm9yIG5vdGljZSkpIHsKICAgICAgICAgICAgJFJlc3VsdFByb3RvY29se01lc3NhZ2V9ID0gJFNlbGYtPntMb2dPYmplY3R9LT5HZXRMb2dFbnRyeSgKICAgICAgICAgICAgICAgIFR5cGUgPT4gJEtleSwKICAgICAgICAgICAgICAgIFdoYXQgPT4gJ01lc3NhZ2UnLAogICAgICAgICAgICApOwogICAgICAgICAgICBsYXN0IGlmICRSZXN1bHRQcm90b2NvbHtNZXNzYWdlfTsKICAgICAgICB9CiAgICB9CgogICAgIyBzZXQgcmVzdWx0IHRvIGEgdmFyaWFibGUgZm9yIGVhc3kgbG9nIG91dHB1dAogICAgbXkgJEpTT05SZXN1bHQgPSAkU2VsZi0+e0pTT05PYmplY3R9LT5FbmNvZGUoIERhdGEgPT4gXCVSZXN1bHRQcm90b2NvbCApOwoKICAgICMgb3V0Ym91bmQgbG9nCiAgICBpZiAoICRTZWxmLT57Q29uZmlnT2JqZWN0fS0+R2V0KCdpUGhvbmU6OkRlYnVnTG9nJykgKSB7CgogICAgICAgICRTZWxmLT5fTG9nKAogICAgICAgICAgICBEaXJlY3Rpb24gPT4gJ091dGJvdW5kJywKICAgICAgICAgICAgTWVzc2FnZSAgID0+ICRKU09OUmVzdWx0LAogICAgICAgICAgICApCiAgICB9CgogICAgcmV0dXJuICRKU09OUmVzdWx0Owp9Cgo9aXRlbSBfTG9nKCkKCndyaXRlcyB0byBhIGRlZmluZWQgbG9nIGZpbGUKCiAgICAkSW50ZXJmYWNlQWdlbnQtPl9Mb2coCiAgICAgICAgRGlyZWN0aW9uID0+ICdJbmJvdW5kJywgICAgICAgIyBvciBPdXRib3VuZAogICAgICAgIE1lc3NhZ2UgICA9PiAnU29tZSBNZXNzYWdlJywKICAgIH07Cgo9Y3V0CgpzdWIgX0xvZyB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICRGSDsKCiAgICAjIG9wZW4gbG9nZmlsZQogICAgaWYgKCAhb3BlbiAkRkgsICc+PicsICRTZWxmLT57RGVidWdMb2dGaWxlfSApIHsKCiAgICAgICAgIyBwcmludCBlcnJvciBzY3JlZW4KICAgICAgICBwcmludCBTVERFUlIgIlxuIjsKICAgICAgICBwcmludCBTVERFUlIgIiA+PiBDYW4ndCB3cml0ZSAkU2VsZi0+e0xvZ0ZpbGV9OiAkISA8PFxuIjsKICAgICAgICBwcmludCBTVERFUlIgIlxuIjsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgIyB3cml0ZSBsb2cgZmlsZQogICAgcHJpbnQgJEZIICdbJyAuICRTZWxmLT57VGltZU9iamVjdH0tPkN1cnJlbnRUaW1lc3RhbXAoKSAuICddJzsKICAgIHByaW50ICRGSCAiW0RlYnVnXSBbJFBhcmFte0RpcmVjdGlvbn1dICRQYXJhbXtNZXNzYWdlfVxuIjsKCiAgICAjIGNsb3NlIGZpbGUgaGFuZGxlCiAgICBjbG9zZSAkRkg7CiAgICByZXR1cm4gMTsKfQoKMTsKCj1iYWNrCgo9aGVhZDEgVEVSTVMgQU5EIENPTkRJVElPTlMKClRoaXMgc29mdHdhcmUgaXMgcGFydCBvZiB0aGUgT1RSUyBwcm9qZWN0IChMPGh0dHA6Ly9vdHJzLm9yZy8+KS4KClRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCnRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEFHUEwpLiBJZiB5b3UKZGlkIG5vdCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIEw8aHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2FncGwudHh0Pi4KCj1jdXQK
IyAtLQojIHNjcmlwdHMvdGVzdC9KU09OR2F0ZXdheS50IC0gSlNPTiBnYXRld2F5IHRlc3RzY3JpcHQKIyBDb3B5cmlnaHQgKEMpIDIwMDEtMjAxMyBPVFJTIEFHLCBodHRwOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEFHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2FncGwudHh0LgojIC0tCgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB1dGY4Owp1c2UgdmFycyAocXcoJFNlbGYpKTsKCnVzZSBLZXJuZWw6OkNvbmZpZzsKdXNlIEtlcm5lbDo6U3lzdGVtOjpKU09OOwp1c2UgS2VybmVsOjpTeXN0ZW06OlVuaXRUZXN0OjpIZWxwZXI7CnVzZSBLZXJuZWw6OlN5c3RlbTo6VmFyaWFibGVDaGVjayBxdyhJc0FycmF5UmVmV2l0aERhdGEgSXNIYXNoUmVmV2l0aERhdGEgSXNTdHJpbmdXaXRoRGF0YSk7CnVzZSBLZXJuZWw6OlN5c3RlbTo6V2ViVXNlckFnZW50OwoKIyBoZWxwZXIgb2JqZWN0Cm15ICRIZWxwZXJPYmplY3QgPSBLZXJuZWw6OlN5c3RlbTo6VW5pdFRlc3Q6OkhlbHBlci0+bmV3KAogICAgJXskU2VsZn0sCiAgICBVbml0VGVzdE9iamVjdCAgICAgICAgICAgICA9PiAkU2VsZiwKICAgIFJlc3RvcmVTeXN0ZW1Db25maWd1cmF0aW9uID0+IDEsCik7CgojIGNyZWF0ZSBvdGhlciBvYmplY3RzCm15ICRDb25maWdPYmplY3QgICAgICAgPSBLZXJuZWw6OkNvbmZpZy0+bmV3KCk7Cm15ICRKU09OT2JqZWN0ICAgICAgICAgPSBLZXJuZWw6OlN5c3RlbTo6SlNPTi0+bmV3KCAleyRTZWxmfSApOwpteSAkV2ViVXNlckFnZW50T2JqZWN0ID0gS2VybmVsOjpTeXN0ZW06OldlYlVzZXJBZ2VudC0+bmV3KCAleyRTZWxmfSApOwoKIyBnZXQgcmVtb3RlIGhvc3Qgd2l0aCBzb21lIHByZWNhdXRpb25zIGZvciBjZXJ0YWluIHVuaXQgdGVzdCBzeXN0ZW1zCm15ICRIb3N0OwpteSAkRlFETiA9ICRTZWxmLT57Q29uZmlnT2JqZWN0fS0+R2V0KCdGUUROJyk7CgojIHRyeSB0byByZXNvbHZlIGZxZG4gaG9zdAppZiAoICRGUUROIG5lICd5b3VyaG9zdC5leGFtcGxlLmNvbScgJiYgZ2V0aG9zdGJ5bmFtZSgkRlFETikgKSB7CiAgICAkSG9zdCA9ICRGUUROOwp9CgojIHRyeSB0byByZXNvbHZlIGxvY2FsaG9zdCBpbnN0ZWFkCmlmICggISRIb3N0ICYmIGdldGhvc3RieW5hbWUoJ2xvY2FsaG9zdCcpICkgewogICAgJEhvc3QgPSAnbG9jYWxob3N0JzsKfQoKIyB1c2UgaGFyZGNvZGVkIGxvY2FsaG9zdCBpcCBhZGRyZXNzCmlmICggISRIb3N0ICkgewogICAgJEhvc3QgPSAnMTI3LjAuMC4xJzsKfQoKIyBwcmVwYXJlIHdlYnNlcnZpY2UgY29uZmlnCm15ICRVUkwgPQogICAgJFNlbGYtPntDb25maWdPYmplY3R9LT5HZXQoJ0h0dHBUeXBlJykKICAgIC4gJzovLycKICAgIC4gJEhvc3QKICAgIC4gJy8nCiAgICAuICRTZWxmLT57Q29uZmlnT2JqZWN0fS0+R2V0KCdTY3JpcHRBbGlhcycpCiAgICAuICdqc29uLnBsJzsKCm15ICRDYWxsSlNPTkNHSSA9IHN1YiB7CiAgICBteSAlUGFyYW0gPSBAXzsKCiAgICBteSAlSlNPTlBhcmFtczsKICAgIGlmICggSXNIYXNoUmVmV2l0aERhdGEoICRQYXJhbXtKU09OUGFyYW1zfSApICkgewogICAgICAgICVKU09OUGFyYW1zID0gJXsgJFBhcmFte0pTT05QYXJhbXN9IH07CiAgICB9CgogICAgIyBjb3B5IEpTT04gQ0dJIGhhbmRsZXIKICAgIG15ICRKU09OVXJsID0gJFVSTCAuICc/JzsKCiAgICBmb3IgbXkgJEl0ZW0gKCBzb3J0IGtleXMgJUpTT05QYXJhbXMgKSB7CiAgICAgICAgJEpTT05VcmwgLj0gIiRJdGVtPSRKU09OUGFyYW1zeyRJdGVtfTsiOwogICAgfQogICAgbXkgJVJlc3BvbnNlID0gJFdlYlVzZXJBZ2VudE9iamVjdC0+UmVxdWVzdCgKICAgICAgICBVUkwgPT4gJEpTT05VcmwsCiAgICApOwoKICAgICRTZWxmLT5JcygKICAgICAgICAkUmVzcG9uc2V7U3RhdHVzfSwKICAgICAgICAnMjAwIE9LJywKICAgICAgICAiSlNPTiBDR0kgLSBUZXN0ICRQYXJhbXtUZXN0TmFtZX0gLSByZXNwb25zZSBpcyAyMDAgT0siLAogICAgKTsKCiAgICByZXR1cm4gJFJlc3BvbnNle0NvbnRlbnR9Owp9OwoKIyBjcmVhdGUgdGVzdCB1c2VyCm15ICRVc2VyID0gJEhlbHBlck9iamVjdC0+VGVzdFVzZXJDcmVhdGUoCiAgICBHcm91cHMgPT4gWyd1c2VycyddLAopOwpteSAkUGFzc3dvcmQgPSAkVXNlcjsKCm15ICRSYW5kb21JRCA9ICRIZWxwZXJPYmplY3QtPkdldFJhbmRvbUlEKCk7CgpteSBAVGVzdHMgPSAoCiAgICB7CiAgICAgICAgTmFtZSAgICAgICA9PiAnRW1wdHkgcGFyYW1zJywKICAgICAgICBKU09OUGFyYW1zID0+IHt9LAogICAgICAgIFN1Y2Nlc3MgICAgPT4gMCwKICAgIH0sCiAgICB7CiAgICAgICAgTmFtZSAgICAgICA9PiAnRW1wdHkgdXNlcicsCiAgICAgICAgSlNPTlBhcmFtcyA9PiB7CiAgICAgICAgICAgIFVzZXIgICAgID0+ICcnLAogICAgICAgICAgICBQYXNzd29yZCA9PiAkUGFzc3dvcmQsCiAgICAgICAgICAgIE9iamVjdCAgID0+ICdDdXN0b21PYmplY3QnLAogICAgICAgICAgICBNZXRob2QgICA9PiAnVmVyc2lvbkdldCcsCiAgICAgICAgfSwKICAgICAgICBTdWNjZXNzID0+IDAsCiAgICB9LAogICAgewogICAgICAgIE5hbWUgICAgICAgPT4gJ0VtcHR5IHBhc3N3b3JkJywKICAgICAgICBKU09OUGFyYW1zID0+IHsKICAgICAgICAgICAgVXNlciAgICAgPT4gJFVzZXIsCiAgICAgICAgICAgIFBhc3N3b3JkID0+ICcnLAogICAgICAgICAgICBPYmplY3QgICA9PiAnQ3VzdG9tT2JqZWN0JywKICAgICAgICAgICAgTWV0aG9kICAgPT4gJ1ZlcnNpb25HZXQnLAogICAgICAgIH0sCiAgICAgICAgU3VjY2VzcyA9PiAwLAogICAgfSwKICAgIHsKICAgICAgICBOYW1lICAgICAgID0+ICdNaXNzaW5nIHBhc3N3b3JkJywKICAgICAgICBKU09OUGFyYW1zID0+IHsKICAgICAgICAgICAgVXNlciAgID0+ICRVc2VyLAogICAgICAgICAgICBPYmplY3QgPT4gJ0N1c3RvbU9iamVjdCcsCiAgICAgICAgICAgIE1ldGhvZCA9PiAnVmVyc2lvbkdldCcsCiAgICAgICAgfSwKICAgICAgICBTdWNjZXNzID0+IDAsCiAgICB9LAogICAgewogICAgICAgIE5hbWUgICAgICAgPT4gJ01pc3NpbmcgdXNlcicsCiAgICAgICAgSlNPTlBhcmFtcyA9PiB7CiAgICAgICAgICAgIFBhc3N3b3JkID0+ICRQYXNzd29yZCwKICAgICAgICAgICAgT2JqZWN0ICAgPT4gJ0N1c3RvbU9iamVjdCcsCiAgICAgICAgICAgIE1ldGhvZCAgID0+ICdWZXJzaW9uR2V0JywKICAgICAgICB9LAogICAgICAgIFN1Y2Nlc3MgPT4gMCwKICAgIH0sCiAgICB7CiAgICAgICAgTmFtZSAgICAgICA9PiAnV3JvbmcgdXNlcicsCiAgICAgICAgSlNPTlBhcmFtcyA9PiB7CiAgICAgICAgICAgIFVzZXIgICAgID0+ICdOb3RFeGlzdGluZycgLiAkUmFuZG9tSUQsCiAgICAgICAgICAgIFBhc3N3b3JkID0+ICRQYXNzd29yZCwKICAgICAgICAgICAgT2JqZWN0ICAgPT4gJ0N1c3RvbU9iamVjdCcsCiAgICAgICAgICAgIE1ldGhvZCAgID0+ICdWZXJzaW9uR2V0JywKICAgICAgICB9LAogICAgICAgIFN1Y2Nlc3MgPT4gMCwKICAgIH0sCiAgICB7CiAgICAgICAgTmFtZSAgICAgICA9PiAnV3JvbmcgcGFzc3dvcmQnLAogICAgICAgIEpTT05QYXJhbXMgPT4gewogICAgICAgICAgICBVc2VyICAgICA9PiAkVXNlciwKICAgICAgICAgICAgUGFzc3dvcmQgPT4gJ05vdEV4aXN0aW5nJyAuICRSYW5kb21JRCwKICAgICAgICAgICAgT2JqZWN0ICAgPT4gJ0N1c3RvbU9iamVjdCcsCiAgICAgICAgICAgIE1ldGhvZCAgID0+ICdWZXJzaW9uR2V0JywKICAgICAgICB9LAogICAgICAgIFN1Y2Nlc3MgPT4gMCwKICAgIH0sCiAgICB7CiAgICAgICAgTmFtZSAgICAgICA9PiAnTWlzc2luZyBvYmplY3QnLAogICAgICAgIEpTT05QYXJhbXMgPT4gewogICAgICAgICAgICBVc2VyICAgICA9PiAkVXNlciwKICAgICAgICAgICAgUGFzc3dvcmQgPT4gJFBhc3N3b3JkLAogICAgICAgICAgICBNZXRob2QgICA9PiAnVmVyc2lvbkdldCcsCiAgICAgICAgfSwKICAgICAgICBTdWNjZXNzID0+IDAsCiAgICB9LAogICAgewogICAgICAgIE5hbWUgICAgICAgPT4gJ01pc3NpbmcgbWV0aG9kJywKICAgICAgICBKU09OUGFyYW1zID0+IHsKICAgICAgICAgICAgVXNlciAgICAgPT4gJFVzZXIsCiAgICAgICAgICAgIFBhc3N3b3JkID0+ICRQYXNzd29yZCwKICAgICAgICAgICAgT2JqZWN0ICAgPT4gJ0N1c3RvbU9iamVjdCcsCiAgICAgICAgfSwKICAgICAgICBTdWNjZXNzID0+IDAsCiAgICB9LAogICAgewogICAgICAgIE5hbWUgICAgICAgPT4gJ1dyb25nIE9iamVjdCcsCiAgICAgICAgSlNPTlBhcmFtcyA9PiB7CiAgICAgICAgICAgIFVzZXIgICAgID0+ICRVc2VyLAogICAgICAgICAgICBQYXNzd29yZCA9PiAkUGFzc3dvcmQsCiAgICAgICAgICAgIE9iamVjdCAgID0+ICdNeU9iamVjdCcsCiAgICAgICAgICAgIE1ldGhvZCAgID0+ICdUaWNrZXRHZXQnLAogICAgICAgIH0sCiAgICAgICAgU3VjY2VzcyA9PiAwLAogICAgfSwKICAgIHsKICAgICAgICBOYW1lICAgICAgID0+ICdCbGFja2xpc3QgT2JqZWN0JywKICAgICAgICBKU09OUGFyYW1zID0+IHsKICAgICAgICAgICAgVXNlciAgICAgPT4gJFVzZXIsCiAgICAgICAgICAgIFBhc3N3b3JkID0+ICRQYXNzd29yZCwKICAgICAgICAgICAgT2JqZWN0ICAgPT4gJ1NlcnZpY2VPYmplY3QnLAogICAgICAgICAgICBNZXRob2QgICA9PiAnU2VydmljZUdldCcsCiAgICAgICAgfSwKICAgICAgICBTdWNjZXNzID0+IDAsCiAgICB9LAogICAgewogICAgICAgIE5hbWUgICAgICAgPT4gJ1doaXRlbGlzdCBPYmplY3QsIEJsYWNrbGlzdCBNZXRob2QnLAogICAgICAgIEpTT05QYXJhbXMgPT4gewogICAgICAgICAgICBVc2VyICAgICA9PiAkVXNlciwKICAgICAgICAgICAgUGFzc3dvcmQgPT4gJFBhc3N3b3JkLAogICAgICAgICAgICBPYmplY3QgICA9PiAnVGlja2V0T2JqZWN0JywKICAgICAgICAgICAgTWV0aG9kICAgPT4gJ1RpY2tldEdldCcsCiAgICAgICAgfSwKICAgICAgICBTdWNjZXNzID0+IDAsCiAgICB9LAogICAgewogICAgICAgIE5hbWUgICAgICAgPT4gJ1dyb25nIE1ldGhvZCBEQk9iamVjdCcsCiAgICAgICAgSlNPTlBhcmFtcyA9PiB7CiAgICAgICAgICAgIFVzZXIgICAgID0+ICRVc2VyLAogICAgICAgICAgICBQYXNzd29yZCA9PiAkUGFzc3dvcmQsCiAgICAgICAgICAgIE9iamVjdCAgID0+ICdEQk9iamVjdCcsCiAgICAgICAgICAgIE1ldGhvZCAgID0+ICdOb3RFeGlzdGVudEdldCcsCiAgICAgICAgfSwKICAgICAgICBTdWNjZXNzID0+IDAsCiAgICB9LAogICAgewogICAgICAgIE5hbWUgICAgICAgPT4gJ1dyb25nIE1ldGhvZCBDdXN0b21PYmplY3QnLAogICAgICAgIEpTT05QYXJhbXMgPT4gewogICAgICAgICAgICBVc2VyICAgICA9PiAkVXNlciwKICAgICAgICAgICAgUGFzc3dvcmQgPT4gJFBhc3N3b3JkLAogICAgICAgICAgICBPYmplY3QgICA9PiAnQ3VzdG9tT2JqZWN0JywKICAgICAgICAgICAgTWV0aG9kICAgPT4gJ05vdEV4aXN0ZW50R2V0JywKICAgICAgICB9LAogICAgICAgIFN1Y2Nlc3MgPT4gMCwKICAgIH0sCiAgICB7CiAgICAgICAgTmFtZSAgICAgICA9PiAnTWlzc2luZyBQYXJhbWV0ZXJzIEN1c3RvbU9iamVjdCcsCiAgICAgICAgSlNPTlBhcmFtcyA9PiB7CiAgICAgICAgICAgIFVzZXIgICAgID0+ICRVc2VyLAogICAgICAgICAgICBQYXNzd29yZCA9PiAkUGFzc3dvcmQsCiAgICAgICAgICAgIE9iamVjdCAgID0+ICdDdXN0b21PYmplY3QnLAogICAgICAgICAgICBNZXRob2QgICA9PiAnQ3VzdG9tZXJJREdldCcsCiAgICAgICAgfSwKICAgICAgICBTdWNjZXNzID0+IDAsCiAgICB9LAogICAgewogICAgICAgIE5hbWUgICAgICAgPT4gJ0NvcnJlY3QgKFdpdGhvdXQgUGFyYW1ldGVycykgQ3VzdG9tT2JqZWN0JywKICAgICAgICBKU09OUGFyYW1zID0+IHsKICAgICAgICAgICAgVXNlciAgICAgPT4gJFVzZXIsCiAgICAgICAgICAgIFBhc3N3b3JkID0+ICRQYXNzd29yZCwKICAgICAgICAgICAgT2JqZWN0ICAgPT4gJ0N1c3RvbU9iamVjdCcsCiAgICAgICAgICAgIE1ldGhvZCAgID0+ICdWZXJzaW9uR2V0JywKICAgICAgICB9LAogICAgICAgIFN1Y2Nlc3MgPT4gMSwKICAgIH0sCgopOwoKZm9yIG15ICRUZXN0IChAVGVzdHMpIHsKICAgIG15ICRKU09OUmVzcG9uc2UgPSAkQ2FsbEpTT05DR0ktPigKICAgICAgICBUZXN0TmFtZSAgID0+ICRUZXN0LT57TmFtZX0sCiAgICAgICAgSlNPTlBhcmFtcyA9PiAkVGVzdC0+e0pTT05QYXJhbXN9LAogICAgKTsKCiAgICBteSAkUmVzcG9uc2UgPSAkSlNPTk9iamVjdC0+RGVjb2RlKCBEYXRhID0+ICR7JEpTT05SZXNwb25zZX0gKTsKCiAgICAkU2VsZi0+SXMoCiAgICAgICAgcmVmICRSZXNwb25zZSwKICAgICAgICAnSEFTSCcsCiAgICAgICAgIkpTT04gQ0dJIC0gVGVzdCAkVGVzdC0+e05hbWV9IC0gZGVjb2RlZCByZXNwb25zZSBpcyBhIEhhc2ggUmVmZXJlbmNlIiwKICAgICk7CgogICAgaWYgKCAkVGVzdC0+e1N1Y2Nlc3N9ICkgewoKICAgIH0KICAgIGVsc2UgewogICAgICAgICRTZWxmLT5JcygKICAgICAgICAgICAgJFJlc3BvbnNlLT57UmVzdWx0fSwKICAgICAgICAgICAgJ2ZhaWxlZCcsCiAgICAgICAgICAgICJKU09OIENHSSAtIFRlc3QgJFRlc3QtPntOYW1lfSAtIGRlY29kZWQgcmVzcG9uc2UgcmVzdWx0IGlzIGZhbHNlIiwKICAgICAgICApOwogICAgICAgICRTZWxmLT5Jc05vdCgKICAgICAgICAgICAgJFJlc3BvbnNlLT57TWVzc2FnZX0sCiAgICAgICAgICAgICcnLAogICAgICAgICAgICAiSlNPTiBDR0kgLSBUZXN0ICRUZXN0LT57TmFtZX0gLSBkZWNvZGVkIHJlc3BvbnNlIG1lc3NhZ2UgaXMgbm90IGVtcHR5IiwKICAgICAgICApOwogICAgfQp9CjE7Cg==
IyAtLQojIEhhc0JlaGF2aW9yLnQgLSBIYXNCZWhhdmlvciBiYWNrZW5kIHRlc3RzCiMgQ29weXJpZ2h0IChDKSAyMDAxLTIwMTMgT1RSUyBBRywgaHR0cDovL290cnMuY29tLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChBR1BMKS4gSWYgeW91CiMgZGlkIG5vdCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9hZ3BsLnR4dC4KIyAtLQoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwp1c2UgdXRmODsKdXNlIHZhcnMgKHF3KCRTZWxmKSk7Cgp1c2UgS2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZDo6QmFja2VuZDsKdXNlIEtlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6SGVscGVyOwp1c2UgS2VybmVsOjpTeXN0ZW06OlZhcmlhYmxlQ2hlY2sgcXcoOmFsbCk7CgpteSAkSGVscGVyT2JqZWN0ID0gS2VybmVsOjpTeXN0ZW06OlVuaXRUZXN0OjpIZWxwZXItPm5ldygKICAgICUkU2VsZiwKICAgIFVuaXRUZXN0T2JqZWN0ID0+ICRTZWxmLAopOwoKbXkgJERGQmFja2VuZE9iamVjdCA9IEtlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQ6OkJhY2tlbmQtPm5ldyggJXskU2VsZn0gKTsKCiMgdGhlcmVzIGlzIG5vdCByZWFsbHkgbmVlZGVkIHRvIGFkZCB0aGUgZHluYW1pYyBmaWVsZHMgZm9yIHRoaXMgdGVzdCwgd2UgY2FuIGRlZmluZSBhIHN0YXRpYwojIHNldCBvZiBjb25maWd1cmF0aW9ucwpteSAlRHluYW1pY0ZpZWxkQ29uZmlncyA9ICgKICAgIFRleHQgPT4gewogICAgICAgIElEICAgICAgICAgICAgPT4gMTIzLAogICAgICAgIEludGVybmFsRmllbGQgPT4gMCwKICAgICAgICBOYW1lICAgICAgICAgID0+ICdUZXh0RmllbGQnLAogICAgICAgIExhYmVsICAgICAgICAgPT4gJ1RleHRGaWVsZCcsCiAgICAgICAgRmllbGRPcmRlciAgICA9PiAxMjMsCiAgICAgICAgRmllbGRUeXBlICAgICA9PiAnVGV4dCcsCiAgICAgICAgT2JqZWN0VHlwZSAgICA9PiAnVGlja2V0JywKICAgICAgICBDb25maWcgICAgICAgID0+IHsKICAgICAgICAgICAgRGVmYXVsdFZhbHVlID0+ICcnLAogICAgICAgICAgICBMaW5rICAgICAgICAgPT4gJycsCiAgICAgICAgfSwKICAgICAgICBWYWxpZElEICAgID0+IDEsCiAgICAgICAgQ3JlYXRlVGltZSA9PiAnMjAxMS0wMi0wOCAxNTowODowMCcsCiAgICAgICAgQ2hhbmdlVGltZSA9PiAnMjAxMS0wNi0xMSAxNzoyMjowMCcsCiAgICB9LAogICAgVGV4dEFyZWEgPT4gewogICAgICAgIElEICAgICAgICAgICAgPT4gMTIzLAogICAgICAgIEludGVybmFsRmllbGQgPT4gMCwKICAgICAgICBOYW1lICAgICAgICAgID0+ICdUZXh0QXJlYUZpZWxkJywKICAgICAgICBMYWJlbCAgICAgICAgID0+ICdUZXh0QXJlYUZpZWxkJywKICAgICAgICBGaWVsZE9yZGVyICAgID0+IDEyMywKICAgICAgICBGaWVsZFR5cGUgICAgID0+ICdUZXh0QXJlYScsCiAgICAgICAgT2JqZWN0VHlwZSAgICA9PiAnVGlja2V0JywKICAgICAgICBDb25maWcgICAgICAgID0+IHsKICAgICAgICAgICAgRGVmYXVsdFZhbHVlID0+ICcnLAogICAgICAgICAgICBSb3dzICAgICAgICAgPT4gJycsCiAgICAgICAgICAgIENvbHMgICAgICAgICA9PiAnJywKICAgICAgICB9LAogICAgICAgIFZhbGlkSUQgICAgPT4gMSwKICAgICAgICBDcmVhdGVUaW1lID0+ICcyMDExLTAyLTA4IDE1OjA4OjAwJywKICAgICAgICBDaGFuZ2VUaW1lID0+ICcyMDExLTA2LTExIDE3OjIyOjAwJywKICAgIH0sCiAgICBDaGVja2JveCA9PiB7CiAgICAgICAgSUQgICAgICAgICAgICA9PiAxMjMsCiAgICAgICAgSW50ZXJuYWxGaWVsZCA9PiAwLAogICAgICAgIE5hbWUgICAgICAgICAgPT4gJ0NoZWNrYm94RmllbGQnLAogICAgICAgIExhYmVsICAgICAgICAgPT4gJ0NoZWNrYm94RmllbGQnLAogICAgICAgIEZpZWxkT3JkZXIgICAgPT4gMTIzLAogICAgICAgIEZpZWxkVHlwZSAgICAgPT4gJ0NoZWNrYm94JywKICAgICAgICBPYmplY3RUeXBlICAgID0+ICdUaWNrZXQnLAogICAgICAgIENvbmZpZyAgICAgICAgPT4gewogICAgICAgICAgICBEZWZhdWx0VmFsdWUgPT4gJycsCiAgICAgICAgfSwKICAgICAgICBWYWxpZElEICAgID0+IDEsCiAgICAgICAgQ3JlYXRlVGltZSA9PiAnMjAxMS0wMi0wOCAxNTowODowMCcsCiAgICAgICAgQ2hhbmdlVGltZSA9PiAnMjAxMS0wNi0xMSAxNzoyMjowMCcsCiAgICB9LAogICAgRHJvcGRvd24gPT4gewogICAgICAgIElEICAgICAgICAgICAgPT4gMTIzLAogICAgICAgIEludGVybmFsRmllbGQgPT4gMCwKICAgICAgICBOYW1lICAgICAgICAgID0+ICdEcm9wZG93bkZpZWxkJywKICAgICAgICBMYWJlbCAgICAgICAgID0+ICdEcm9wZG93bkZpZWxkJywKICAgICAgICBGaWVsZE9yZGVyICAgID0+IDEyMywKICAgICAgICBGaWVsZFR5cGUgICAgID0+ICdEcm9wZG93bicsCiAgICAgICAgT2JqZWN0VHlwZSAgICA9PiAnVGlja2V0JywKICAgICAgICBDb25maWcgICAgICAgID0+IHsKICAgICAgICAgICAgRGVmYXVsdFZhbHVlICAgICAgID0+ICcnLAogICAgICAgICAgICBMaW5rICAgICAgICAgICAgICAgPT4gJycsCiAgICAgICAgICAgIFBvc3NpYmxlTm9uZSAgICAgICA9PiAnJywKICAgICAgICAgICAgVHJhbnNsYXRhYmxlVmFsdWVzID0+ICcnLAogICAgICAgICAgICBQb3NzaWJsZVZhbHVlcyAgICAgPT4gewogICAgICAgICAgICAgICAgQSA9PiAnQScsCiAgICAgICAgICAgICAgICBCID0+ICdCJywKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIFZhbGlkSUQgICAgPT4gMSwKICAgICAgICBDcmVhdGVUaW1lID0+ICcyMDExLTAyLTA4IDE1OjA4OjAwJywKICAgICAgICBDaGFuZ2VUaW1lID0+ICcyMDExLTA2LTExIDE3OjIyOjAwJywKICAgIH0sCiAgICBNdWx0aXNlbGVjdCA9PiB7CiAgICAgICAgSUQgICAgICAgICAgICA9PiAxMjMsCiAgICAgICAgSW50ZXJuYWxGaWVsZCA9PiAwLAogICAgICAgIE5hbWUgICAgICAgICAgPT4gJ011bHRpc2VsZWN0RmllbGQnLAogICAgICAgIExhYmVsICAgICAgICAgPT4gJ011bHRpc2VsZWN0RmllbGQnLAogICAgICAgIEZpZWxkT3JkZXIgICAgPT4gMTIzLAogICAgICAgIEZpZWxkVHlwZSAgICAgPT4gJ011bHRpc2VsZWN0JywKICAgICAgICBPYmplY3RUeXBlICAgID0+ICdUaWNrZXQnLAogICAgICAgIENvbmZpZyAgICAgICAgPT4gewogICAgICAgICAgICBEZWZhdWx0VmFsdWUgICAgICAgPT4gJycsCiAgICAgICAgICAgIFBvc3NpYmxlTm9uZSAgICAgICA9PiAnJywKICAgICAgICAgICAgVHJhbnNsYXRhYmxlVmFsdWVzID0+ICcnLAogICAgICAgICAgICBQb3NzaWJsZVZhbHVlcyAgICAgPT4gewogICAgICAgICAgICAgICAgQSA9PiAnQScsCiAgICAgICAgICAgICAgICBCID0+ICdCJywKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIFZhbGlkSUQgICAgPT4gMSwKICAgICAgICBDcmVhdGVUaW1lID0+ICcyMDExLTAyLTA4IDE1OjA4OjAwJywKICAgICAgICBDaGFuZ2VUaW1lID0+ICcyMDExLTA2LTExIDE3OjIyOjAwJywKICAgIH0sCiAgICBEYXRlVGltZSA9PiB7CiAgICAgICAgSUQgICAgICAgICAgICA9PiAxMjMsCiAgICAgICAgSW50ZXJuYWxGaWVsZCA9PiAwLAogICAgICAgIE5hbWUgICAgICAgICAgPT4gJ0RhdGVUaW1lRmllbGQnLAogICAgICAgIExhYmVsICAgICAgICAgPT4gJ0RhdGVUaW1lRmllbGQnLAogICAgICAgIEZpZWxkT3JkZXIgICAgPT4gMTIzLAogICAgICAgIEZpZWxkVHlwZSAgICAgPT4gJ0RhdGVUaW1lJywKICAgICAgICBPYmplY3RUeXBlICAgID0+ICdUaWNrZXQnLAogICAgICAgIENvbmZpZyAgICAgICAgPT4gewogICAgICAgICAgICBEZWZhdWx0VmFsdWUgID0+ICcnLAogICAgICAgICAgICBMaW5rICAgICAgICAgID0+ICcnLAogICAgICAgICAgICBZZWFyc1BlcmlvZCAgID0+ICcnLAogICAgICAgICAgICBZZWFyc0luRnV0dXJlID0+ICcnLAogICAgICAgICAgICBZZWFyc0luUGFzdCAgID0+ICcnLAogICAgICAgIH0sCiAgICAgICAgVmFsaWRJRCAgICA9PiAxLAogICAgICAgIENyZWF0ZVRpbWUgPT4gJzIwMTEtMDItMDggMTU6MDg6MDAnLAogICAgICAgIENoYW5nZVRpbWUgPT4gJzIwMTEtMDYtMTEgMTc6MjI6MDAnLAogICAgfSwKICAgIERhdGUgPT4gewogICAgICAgIElEICAgICAgICAgICAgPT4gMTIzLAogICAgICAgIEludGVybmFsRmllbGQgPT4gMCwKICAgICAgICBOYW1lICAgICAgICAgID0+ICdEYXRlRmllbGQnLAogICAgICAgIExhYmVsICAgICAgICAgPT4gJ0RhdGVGaWVsZCcsCiAgICAgICAgRmllbGRPcmRlciAgICA9PiAxMjMsCiAgICAgICAgRmllbGRUeXBlICAgICA9PiAnRGF0ZScsCiAgICAgICAgT2JqZWN0VHlwZSAgICA9PiAnVGlja2V0JywKICAgICAgICBDb25maWcgICAgICAgID0+IHsKICAgICAgICAgICAgRGVmYXVsdFZhbHVlICA9PiAnJywKICAgICAgICAgICAgTGluayAgICAgICAgICA9PiAnJywKICAgICAgICAgICAgWWVhcnNQZXJpb2QgICA9PiAnJywKICAgICAgICAgICAgWWVhcnNJbkZ1dHVyZSA9PiAnJywKICAgICAgICAgICAgWWVhcnNJblBhc3QgICA9PiAnJywKICAgICAgICB9LAogICAgICAgIFZhbGlkSUQgICAgPT4gMSwKICAgICAgICBDcmVhdGVUaW1lID0+ICcyMDExLTAyLTA4IDE1OjA4OjAwJywKICAgICAgICBDaGFuZ2VUaW1lID0+ICcyMDExLTA2LTExIDE3OjIyOjAwJywKICAgIH0sCik7CgojIGRlZmluZSB0ZXN0cwpteSBAVGVzdHMgPSAoCiAgICB7CiAgICAgICAgTmFtZSAgID0+ICdEeW5hbWljRmllbGQgVGV4dCcsCiAgICAgICAgQ29uZmlnID0+IHsKICAgICAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnID0+ICREeW5hbWljRmllbGRDb25maWdze1RleHR9LAogICAgICAgIH0sCiAgICAgICAgRXhwZWN0ZWRSZXN1bHRzID0+IHsKICAgICAgICAgICAgJ0lzSVBob25lQ2FwYWJsZScgPT4gMSwKICAgICAgICB9LAogICAgfSwKICAgIHsKICAgICAgICBOYW1lICAgPT4gJ0R5bmFtaWNGaWVsZCBUZXh0IEFyZWEnLAogICAgICAgIENvbmZpZyA9PiB7CiAgICAgICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyA9PiAkRHluYW1pY0ZpZWxkQ29uZmlnc3tUZXh0QXJlYX0sCiAgICAgICAgfSwKICAgICAgICBFeHBlY3RlZFJlc3VsdHMgPT4gewogICAgICAgICAgICAnSXNJUGhvbmVDYXBhYmxlJyA9PiAxLAogICAgICAgIH0sCiAgICB9LAogICAgewogICAgICAgIE5hbWUgICA9PiAnRHluYW1pY0ZpZWxkIENoZWNrYm94JywKICAgICAgICBDb25maWcgPT4gewogICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgPT4gJER5bmFtaWNGaWVsZENvbmZpZ3N7Q2hlY2tib3h9LAogICAgICAgIH0sCiAgICAgICAgRXhwZWN0ZWRSZXN1bHRzID0+IHsKICAgICAgICAgICAgJ0lzSVBob25lQ2FwYWJsZScgPT4gMSwKICAgICAgICB9LAogICAgfSwKICAgIHsKICAgICAgICBOYW1lICAgPT4gJ0R5bmFtaWNGaWVsZCBEcm9wZG93bicsCiAgICAgICAgQ29uZmlnID0+IHsKICAgICAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnID0+ICREeW5hbWljRmllbGRDb25maWdze0Ryb3Bkb3dufSwKICAgICAgICB9LAogICAgICAgIEV4cGVjdGVkUmVzdWx0cyA9PiB7CiAgICAgICAgICAgICdJc0lQaG9uZUNhcGFibGUnID0+IDEsCiAgICAgICAgfSwKICAgIH0sCiAgICB7CiAgICAgICAgTmFtZSAgID0+ICdEeW5hbWljRmllbGQgTXVsdGlzZWxlY3QnLAogICAgICAgIENvbmZpZyA9PiB7CiAgICAgICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyA9PiAkRHluYW1pY0ZpZWxkQ29uZmlnc3tNdWx0aXNlbGVjdH0sCiAgICAgICAgfSwKICAgICAgICBFeHBlY3RlZFJlc3VsdHMgPT4gewogICAgICAgICAgICAnSXNJUGhvbmVDYXBhYmxlJyA9PiAwLAogICAgICAgIH0sCiAgICB9LAogICAgewogICAgICAgIE5hbWUgICA9PiAnRHluYW1pY0ZpZWxkIERhdGVUaW1lJywKICAgICAgICBDb25maWcgPT4gewogICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgPT4gJER5bmFtaWNGaWVsZENvbmZpZ3N7RGF0ZVRpbWV9LAogICAgICAgIH0sCiAgICAgICAgRXhwZWN0ZWRSZXN1bHRzID0+IHsKICAgICAgICAgICAgJ0lzSVBob25lQ2FwYWJsZScgPT4gMSwKICAgICAgICB9LAogICAgfSwKICAgIHsKICAgICAgICBOYW1lICAgPT4gJ0R5bmFtaWNGaWVsZCBEYXRlJywKICAgICAgICBDb25maWcgPT4gewogICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgPT4gJER5bmFtaWNGaWVsZENvbmZpZ3N7RGF0ZX0sCiAgICAgICAgfSwKICAgICAgICBFeHBlY3RlZFJlc3VsdHMgPT4gewogICAgICAgICAgICAnSXNJUGhvbmVDYXBhYmxlJyA9PiAxLAogICAgICAgIH0sCiAgICB9LAopOwoKIyBleGVjdXRlIHRlc3RzCmZvciBteSAkVGVzdCAoQFRlc3RzKSB7CgogICAgIyBzZXQga25vd24gYmVoYXZpb3JzCiAgICBCRUhBVklPUjoKICAgIGZvciBteSAkQmVoYXZpb3IgKHF3KElzSVBob25lQ2FwYWJsZSkpIHsKCiAgICAgICAgIyB0byBzdG9yZSB0aGUgY29uZmlnIChhbHNvIGZvciBlYWNoIGJlaGF2aW9yKQogICAgICAgIG15ICVDb25maWc7CgogICAgICAgICMgYWRkIHRoZSBiZWhhdmlvciBpZiB0aGVyZSBpcyBhIGNvbmZpZyB3aGVyZSB0byBhZGQgaXQuCiAgICAgICAgaWYgKCBJc0hhc2hSZWZXaXRoRGF0YSggJFRlc3QtPntDb25maWd9ICkgKSB7CiAgICAgICAgICAgICVDb25maWcgPSAoCiAgICAgICAgICAgICAgICAleyAkVGVzdC0+e0NvbmZpZ30gfSwKICAgICAgICAgICAgICAgIEJlaGF2aW9yID0+ICRCZWhhdmlvciwKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgICMgY2FsbCBIYXNCZWhhdmlvciBmb3IgZWFjaCB0ZXN0IGZvciBlYWNoIGtub3duIGJlaGF2aW9yCiAgICAgICAgbXkgJFN1Y2Nlc3MgPSAkREZCYWNrZW5kT2JqZWN0LT5IYXNCZWhhdmlvciglQ29uZmlnKTsKCiAgICAgICAgIyBpZiB0aGUgdGVzdCBpcyBhIHN1Y2Nlc3MgdGhlbiBjaGVjayB0aGUgZXhwZWN0ZWQgcmVzdWx0cyB3aXRoIHRydWUKICAgICAgICBpZiAoJFN1Y2Nlc3MpIHsKICAgICAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgICAgICAkVGVzdC0+e0V4cGVjdGVkUmVzdWx0c30tPnskQmVoYXZpb3J9LAogICAgICAgICAgICAgICAgIiRUZXN0LT57TmFtZX0gSGFzQmVoYXZpb3IoKSBmb3IgJEJlaGF2aW9yIGV4ZWN1dGVkIHdpdGggVHJ1ZSIsCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICAjIG90aGVyd2lzZSBpZiB0aGVyZSBpcyBhIER5bmFtaWNGaWVsZCBjb25maWcgY2hlY2sgdGhlIGV4cGVjdGVkIHJlc3VsdHMgd2l0aCBmYWxzZQogICAgICAgIGVsc2UgewogICAgICAgICAgICBpZiAoIElzSGFzaFJlZldpdGhEYXRhKCAkVGVzdC0+e0NvbmZpZ30tPntEeW5hbWljRmllbGRDb25maWd9ICkgKSB7CiAgICAgICAgICAgICAgICAkU2VsZi0+RmFsc2UoCiAgICAgICAgICAgICAgICAgICAgJFRlc3QtPntFeHBlY3RlZFJlc3VsdHN9LT57JEJlaGF2aW9yfSwKICAgICAgICAgICAgICAgICAgICAiJFRlc3QtPntOYW1lfSBIYXNCZWhhdmlvcigpIGZvciAkQmVoYXZpb3IgZXhlY3V0ZWQgd2l0aCBGYWxzZSIsCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CgogICAgICAgICAgICAjIGlmIHRoZXJlIGlzIG5vIER5bmFtaWNGaWVsZCBjb25maWcsIHRoZW4gaXQgc2hvdWxkIGZhaWwsIGRvbid0IG5lZWQgZnVydGhlciBjaGVja3MKICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgICAgICAgICAxLAogICAgICAgICAgICAgICAgICAgICIkVGVzdC0+e05hbWV9IEhhc0JlaGF2aW9yKCkgU2hvdWxkIG5vdCBydW4gb24gbWlzc2luZyBjb25maWd1cmF0aW9uIiwKICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgIyBpZiB0aGUgdGVzdHMgc3VwcG9zZWQgdG8gZmFpbCBkdWUgdG8gbWlzc2luZyBlc3NlbnRpYWwgY29uZmlndXJhdGlvbiB0aGVyZSBpcyBubwogICAgICAgICAgICAgICAgIyBuZWVkIHRvIGtlZXAgdGVzdGluZyB3aXRoIG90aGVyIGJlaGF2aW9ycwogICAgICAgICAgICAgICAgbGFzdCBCRUhBVklPUjsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KfQoKIyB3ZSBkb24ndCBuZWVkIGFueSBjbGVhbnVwCjE7Cg==
IyAtLQojIGlQaG9uZUZpZWxkUGFyYW1ldGVyQnVpbGQudCAtIGlQaG9uZUZpZWxkUGFyYW1ldGVyQnVpbGQgYmFja2VuZCB0ZXN0cwojIENvcHlyaWdodCAoQykgMjAwMS0yMDEzIE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKdXNlIHV0Zjg7CnVzZSB2YXJzIChxdygkU2VsZikpOwoKdXNlIEtlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQ6OkJhY2tlbmQ7CnVzZSBLZXJuZWw6OlN5c3RlbTo6VW5pdFRlc3Q6OkhlbHBlcjsKdXNlIEtlcm5lbDo6U3lzdGVtOjpWYXJpYWJsZUNoZWNrIHF3KDphbGwpOwoKbXkgJEhlbHBlck9iamVjdCA9IEtlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6SGVscGVyLT5uZXcoCiAgICAlJFNlbGYsCiAgICBVbml0VGVzdE9iamVjdCA9PiAkU2VsZiwKKTsKCm15ICRERkJhY2tlbmRPYmplY3QgPSBLZXJuZWw6OlN5c3RlbTo6RHluYW1pY0ZpZWxkOjpCYWNrZW5kLT5uZXcoICV7JFNlbGZ9ICk7CgpteSAkRW5MYW5ndWFnZU9iamVjdCA9IEtlcm5lbDo6TGFuZ3VhZ2UtPm5ldygKICAgICV7JFNlbGZ9LAogICAgVXNlckxhbmd1YWdlID0+ICdlbicsCik7Cm15ICRFc0xhbmd1YWdlT2JqZWN0ID0gS2VybmVsOjpMYW5ndWFnZS0+bmV3KAogICAgJXskU2VsZn0sCiAgICBVc2VyTGFuZ3VhZ2UgPT4gJ2VzJywKKTsKCiMgdGhlcmVzIGlzIG5vdCByZWFsbHkgbmVlZGVkIHRvIGFkZCB0aGUgZHluYW1pYyBmaWVsZHMgZm9yIHRoaXMgdGVzdCwgd2UgY2FuIGRlZmluZSBhIHN0YXRpYwojIHNldCBvZiBjb25maWd1cmF0aW9ucwpteSAlRHluYW1pY0ZpZWxkQ29uZmlncyA9ICgKICAgIFRleHQgPT4gewogICAgICAgIElEICAgICAgICAgICAgPT4gMTIzLAogICAgICAgIEludGVybmFsRmllbGQgPT4gMCwKICAgICAgICBOYW1lICAgICAgICAgID0+ICdUZXh0RmllbGQnLAogICAgICAgIExhYmVsICAgICAgICAgPT4gJ093bmVyJywKICAgICAgICBGaWVsZE9yZGVyICAgID0+IDEyMywKICAgICAgICBGaWVsZFR5cGUgICAgID0+ICdUZXh0JywKICAgICAgICBPYmplY3RUeXBlICAgID0+ICdUaWNrZXQnLAogICAgICAgIENvbmZpZyAgICAgICAgPT4gewogICAgICAgICAgICBEZWZhdWx0VmFsdWUgPT4gJycsCiAgICAgICAgICAgIExpbmsgICAgICAgICA9PiAnJywKICAgICAgICB9LAogICAgICAgIFZhbGlkSUQgICAgPT4gMSwKICAgICAgICBDcmVhdGVUaW1lID0+ICcyMDExLTAyLTA4IDE1OjA4OjAwJywKICAgICAgICBDaGFuZ2VUaW1lID0+ICcyMDExLTA2LTExIDE3OjIyOjAwJywKICAgIH0sCiAgICBUZXh0QXJlYSA9PiB7CiAgICAgICAgSUQgICAgICAgICAgICA9PiAxMjMsCiAgICAgICAgSW50ZXJuYWxGaWVsZCA9PiAwLAogICAgICAgIE5hbWUgICAgICAgICAgPT4gJ1RleHRBcmVhRmllbGQnLAogICAgICAgIExhYmVsICAgICAgICAgPT4gJ093bmVyJywKICAgICAgICBGaWVsZE9yZGVyICAgID0+IDEyMywKICAgICAgICBGaWVsZFR5cGUgICAgID0+ICdUZXh0QXJlYScsCiAgICAgICAgT2JqZWN0VHlwZSAgICA9PiAnVGlja2V0JywKICAgICAgICBDb25maWcgICAgICAgID0+IHsKICAgICAgICAgICAgRGVmYXVsdFZhbHVlID0+ICcnLAogICAgICAgICAgICBSb3dzICAgICAgICAgPT4gJycsCiAgICAgICAgICAgIENvbHMgICAgICAgICA9PiAnJywKICAgICAgICB9LAogICAgICAgIFZhbGlkSUQgICAgPT4gMSwKICAgICAgICBDcmVhdGVUaW1lID0+ICcyMDExLTAyLTA4IDE1OjA4OjAwJywKICAgICAgICBDaGFuZ2VUaW1lID0+ICcyMDExLTA2LTExIDE3OjIyOjAwJywKICAgIH0sCiAgICBDaGVja2JveCA9PiB7CiAgICAgICAgSUQgICAgICAgICAgICA9PiAxMjMsCiAgICAgICAgSW50ZXJuYWxGaWVsZCA9PiAwLAogICAgICAgIE5hbWUgICAgICAgICAgPT4gJ0NoZWNrYm94RmllbGQnLAogICAgICAgIExhYmVsICAgICAgICAgPT4gJ093bmVyJywKICAgICAgICBGaWVsZE9yZGVyICAgID0+IDEyMywKICAgICAgICBGaWVsZFR5cGUgICAgID0+ICdDaGVja2JveCcsCiAgICAgICAgT2JqZWN0VHlwZSAgICA9PiAnVGlja2V0JywKICAgICAgICBDb25maWcgICAgICAgID0+IHsKICAgICAgICAgICAgRGVmYXVsdFZhbHVlID0+ICcnLAogICAgICAgIH0sCiAgICAgICAgVmFsaWRJRCAgICA9PiAxLAogICAgICAgIENyZWF0ZVRpbWUgPT4gJzIwMTEtMDItMDggMTU6MDg6MDAnLAogICAgICAgIENoYW5nZVRpbWUgPT4gJzIwMTEtMDYtMTEgMTc6MjI6MDAnLAogICAgfSwKICAgIERyb3Bkb3duID0+IHsKICAgICAgICBJRCAgICAgICAgICAgID0+IDEyMywKICAgICAgICBJbnRlcm5hbEZpZWxkID0+IDAsCiAgICAgICAgTmFtZSAgICAgICAgICA9PiAnRHJvcGRvd25GaWVsZCcsCiAgICAgICAgTGFiZWwgICAgICAgICA9PiAnT3duZXInLAogICAgICAgIEZpZWxkT3JkZXIgICAgPT4gMTIzLAogICAgICAgIEZpZWxkVHlwZSAgICAgPT4gJ0Ryb3Bkb3duJywKICAgICAgICBPYmplY3RUeXBlICAgID0+ICdUaWNrZXQnLAogICAgICAgIENvbmZpZyAgICAgICAgPT4gewogICAgICAgICAgICBEZWZhdWx0VmFsdWUgICAgICAgPT4gJycsCiAgICAgICAgICAgIExpbmsgICAgICAgICAgICAgICA9PiAnJywKICAgICAgICAgICAgUG9zc2libGVOb25lICAgICAgID0+ICcnLAogICAgICAgICAgICBUcmFuc2xhdGFibGVWYWx1ZXMgPT4gMSwKICAgICAgICAgICAgUG9zc2libGVWYWx1ZXMgICAgID0+IHsKICAgICAgICAgICAgICAgIDEgPT4gJ1ByaW9yaXR5JywKICAgICAgICAgICAgICAgIDIgPT4gJ1N0YXRlJywKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIFZhbGlkSUQgICAgPT4gMSwKICAgICAgICBDcmVhdGVUaW1lID0+ICcyMDExLTAyLTA4IDE1OjA4OjAwJywKICAgICAgICBDaGFuZ2VUaW1lID0+ICcyMDExLTA2LTExIDE3OjIyOjAwJywKICAgIH0sCiAgICBNdWx0aXNlbGVjdCA9PiB7CiAgICAgICAgSUQgICAgICAgICAgICA9PiAxMjMsCiAgICAgICAgSW50ZXJuYWxGaWVsZCA9PiAwLAogICAgICAgIE5hbWUgICAgICAgICAgPT4gJ011bHRpc2VsZWN0RmllbGQnLAogICAgICAgIExhYmVsICAgICAgICAgPT4gJ093bmVyJywKICAgICAgICBGaWVsZE9yZGVyICAgID0+IDEyMywKICAgICAgICBGaWVsZFR5cGUgICAgID0+ICdNdWx0aXNlbGVjdCcsCiAgICAgICAgT2JqZWN0VHlwZSAgICA9PiAnVGlja2V0JywKICAgICAgICBDb25maWcgICAgICAgID0+IHsKICAgICAgICAgICAgRGVmYXVsdFZhbHVlICAgICAgID0+ICcnLAogICAgICAgICAgICBQb3NzaWJsZU5vbmUgICAgICAgPT4gJycsCiAgICAgICAgICAgIFRyYW5zbGF0YWJsZVZhbHVlcyA9PiAxLAogICAgICAgICAgICBQb3NzaWJsZVZhbHVlcyAgICAgPT4gewogICAgICAgICAgICAgICAgMSA9PiAnUHJpb3JpdHknLAogICAgICAgICAgICAgICAgMiA9PiAnU3RhdGUnLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgVmFsaWRJRCAgICA9PiAxLAogICAgICAgIENyZWF0ZVRpbWUgPT4gJzIwMTEtMDItMDggMTU6MDg6MDAnLAogICAgICAgIENoYW5nZVRpbWUgPT4gJzIwMTEtMDYtMTEgMTc6MjI6MDAnLAogICAgfSwKICAgIERhdGVUaW1lID0+IHsKICAgICAgICBJRCAgICAgICAgICAgID0+IDEyMywKICAgICAgICBJbnRlcm5hbEZpZWxkID0+IDAsCiAgICAgICAgTmFtZSAgICAgICAgICA9PiAnRGF0ZVRpbWVGaWVsZCcsCiAgICAgICAgTGFiZWwgICAgICAgICA9PiAnT3duZXInLAogICAgICAgIEZpZWxkT3JkZXIgICAgPT4gMTIzLAogICAgICAgIEZpZWxkVHlwZSAgICAgPT4gJ0RhdGVUaW1lJywKICAgICAgICBPYmplY3RUeXBlICAgID0+ICdUaWNrZXQnLAogICAgICAgIENvbmZpZyAgICAgICAgPT4gewogICAgICAgICAgICBEZWZhdWx0VmFsdWUgID0+IHVuZGVmLAogICAgICAgICAgICBMaW5rICAgICAgICAgID0+ICcnLAogICAgICAgICAgICBZZWFyc1BlcmlvZCAgID0+ICcnLAogICAgICAgICAgICBZZWFyc0luRnV0dXJlID0+ICcnLAogICAgICAgICAgICBZZWFyc0luUGFzdCAgID0+ICcnLAogICAgICAgIH0sCiAgICAgICAgVmFsaWRJRCAgICA9PiAxLAogICAgICAgIENyZWF0ZVRpbWUgPT4gJzIwMTEtMDItMDggMTU6MDg6MDAnLAogICAgICAgIENoYW5nZVRpbWUgPT4gJzIwMTEtMDYtMTEgMTc6MjI6MDAnLAogICAgfSwKICAgIERhdGUgPT4gewogICAgICAgIElEICAgICAgICAgICAgPT4gMTIzLAogICAgICAgIEludGVybmFsRmllbGQgPT4gMCwKICAgICAgICBOYW1lICAgICAgICAgID0+ICdEYXRlRmllbGQnLAogICAgICAgIExhYmVsICAgICAgICAgPT4gJ093bmVyJywKICAgICAgICBGaWVsZE9yZGVyICAgID0+IDEyMywKICAgICAgICBGaWVsZFR5cGUgICAgID0+ICdEYXRlJywKICAgICAgICBPYmplY3RUeXBlICAgID0+ICdUaWNrZXQnLAogICAgICAgIENvbmZpZyAgICAgICAgPT4gewogICAgICAgICAgICBEZWZhdWx0VmFsdWUgID0+ICcnLAogICAgICAgICAgICBMaW5rICAgICAgICAgID0+ICcnLAogICAgICAgICAgICBZZWFyc1BlcmlvZCAgID0+ICcnLAogICAgICAgICAgICBZZWFyc0luRnV0dXJlID0+ICcnLAogICAgICAgICAgICBZZWFyc0luUGFzdCAgID0+ICcnLAogICAgICAgIH0sCiAgICAgICAgVmFsaWRJRCAgICA9PiAxLAogICAgICAgIENyZWF0ZVRpbWUgPT4gJzIwMTEtMDItMDggMTU6MDg6MDAnLAogICAgICAgIENoYW5nZVRpbWUgPT4gJzIwMTEtMDYtMTEgMTc6MjI6MDAnLAogICAgfSwKKTsKCiMgZGVmaW5lIHRlc3RzCm15IEBUZXN0cyA9ICgKICAgIHsKICAgICAgICBOYW1lICAgPT4gJ0R5bmFtaWNGaWVsZCBUZXh0IEVOJywKICAgICAgICBDb25maWcgPT4gewogICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgICA9PiAkRHluYW1pY0ZpZWxkQ29uZmlnc3tUZXh0fSwKICAgICAgICAgICAgVmFsdWUgICAgICAgICAgICAgICAgPT4gJ1ByaW9yaXR5JywKICAgICAgICAgICAgTWFuZGF0b3J5ICAgICAgICAgICAgPT4gMSwKICAgICAgICAgICAgVXNlRGVmYXVsdFZhbHVlICAgICAgPT4gMCwKICAgICAgICAgICAgT3ZlcnJpZGVQb3NzaWJsZU5vbmUgPT4gdW5kZWYsCiAgICAgICAgICAgIExhbmd1YWdlT2JqZWN0ICAgICAgID0+ICRFbkxhbmd1YWdlT2JqZWN0CiAgICAgICAgfSwKICAgICAgICBFeHBlY3RlZFJlc3VsdHMgPT4gewogICAgICAgICAgICBOYW1lICAgICAgPT4gJ0R5bmFtaWNGaWVsZF9UZXh0RmllbGQnLAogICAgICAgICAgICBUaXRsZSAgICAgPT4gJ093bmVyJywKICAgICAgICAgICAgRGF0YXR5cGUgID0+ICdUZXh0JywKICAgICAgICAgICAgVmlld3R5cGUgID0+ICdJbnB1dCcsCiAgICAgICAgICAgIE1pbiAgICAgICA9PiAxLAogICAgICAgICAgICBNYXggICAgICAgPT4gMjAwLAogICAgICAgICAgICBNYW5kYXRvcnkgPT4gMSwKICAgICAgICAgICAgRGVmYXVsdCAgID0+ICdQcmlvcml0eScsCiAgICAgICAgfSwKICAgIH0sCiAgICB7CiAgICAgICAgTmFtZSAgID0+ICdEeW5hbWljRmllbGQgVGV4dCBFUycsCiAgICAgICAgQ29uZmlnID0+IHsKICAgICAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnICAgPT4gJER5bmFtaWNGaWVsZENvbmZpZ3N7VGV4dH0sCiAgICAgICAgICAgIFZhbHVlICAgICAgICAgICAgICAgID0+ICdQcmlvcml0eScsCiAgICAgICAgICAgIE1hbmRhdG9yeSAgICAgICAgICAgID0+IDEsCiAgICAgICAgICAgIFVzZURlZmF1bHRWYWx1ZSAgICAgID0+IDAsCiAgICAgICAgICAgIE92ZXJyaWRlUG9zc2libGVOb25lID0+IHVuZGVmLAogICAgICAgICAgICBMYW5ndWFnZU9iamVjdCAgICAgICA9PiAkRXNMYW5ndWFnZU9iamVjdAogICAgICAgIH0sCiAgICAgICAgRXhwZWN0ZWRSZXN1bHRzID0+IHsKICAgICAgICAgICAgTmFtZSAgICAgID0+ICdEeW5hbWljRmllbGRfVGV4dEZpZWxkJywKICAgICAgICAgICAgVGl0bGUgICAgID0+ICdQcm9waWV0YXJpbycsCiAgICAgICAgICAgIERhdGF0eXBlICA9PiAnVGV4dCcsCiAgICAgICAgICAgIFZpZXd0eXBlICA9PiAnSW5wdXQnLAogICAgICAgICAgICBNaW4gICAgICAgPT4gMSwKICAgICAgICAgICAgTWF4ICAgICAgID0+IDIwMCwKICAgICAgICAgICAgTWFuZGF0b3J5ID0+IDEsCiAgICAgICAgICAgIERlZmF1bHQgICA9PiAnUHJpb3JpdHknLAogICAgICAgIH0sCiAgICB9LAogICAgewogICAgICAgIE5hbWUgICA9PiAnRHluYW1pY0ZpZWxkIFRleHQgQXJlYSBFTicsCiAgICAgICAgQ29uZmlnID0+IHsKICAgICAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnICAgPT4gJER5bmFtaWNGaWVsZENvbmZpZ3N7VGV4dEFyZWF9LAogICAgICAgICAgICBWYWx1ZSAgICAgICAgICAgICAgICA9PiAnUHJpb3JpdHknLAogICAgICAgICAgICBNYW5kYXRvcnkgICAgICAgICAgICA9PiAwLAogICAgICAgICAgICBVc2VEZWZhdWx0VmFsdWUgICAgICA9PiAwLAogICAgICAgICAgICBPdmVycmlkZVBvc3NpYmxlTm9uZSA9PiB1bmRlZiwKICAgICAgICAgICAgTGFuZ3VhZ2VPYmplY3QgICAgICAgPT4gJEVuTGFuZ3VhZ2VPYmplY3QKICAgICAgICB9LAogICAgICAgIEV4cGVjdGVkUmVzdWx0cyA9PiB7CiAgICAgICAgICAgIE5hbWUgICAgICA9PiAnRHluYW1pY0ZpZWxkX1RleHRBcmVhRmllbGQnLAogICAgICAgICAgICBUaXRsZSAgICAgPT4gJ093bmVyJywKICAgICAgICAgICAgRGF0YXR5cGUgID0+ICdUZXh0JywKICAgICAgICAgICAgVmlld3R5cGUgID0+ICdUZXh0QXJlYScsCiAgICAgICAgICAgIE1pbiAgICAgICA9PiAxLAogICAgICAgICAgICBNYXggICAgICAgPT4gMjAwMDAsCiAgICAgICAgICAgIE1hbmRhdG9yeSA9PiAwLAogICAgICAgICAgICBEZWZhdWx0ICAgPT4gJ1ByaW9yaXR5JywKICAgICAgICB9LAogICAgfSwKICAgIHsKICAgICAgICBOYW1lICAgPT4gJ0R5bmFtaWNGaWVsZCBUZXh0IEFyZWEgRVMnLAogICAgICAgIENvbmZpZyA9PiB7CiAgICAgICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyAgID0+ICREeW5hbWljRmllbGRDb25maWdze1RleHRBcmVhfSwKICAgICAgICAgICAgVmFsdWUgICAgICAgICAgICAgICAgPT4gJ1ByaW9yaXR5JywKICAgICAgICAgICAgTWFuZGF0b3J5ICAgICAgICAgICAgPT4gMCwKICAgICAgICAgICAgVXNlRGVmYXVsdFZhbHVlICAgICAgPT4gMCwKICAgICAgICAgICAgT3ZlcnJpZGVQb3NzaWJsZU5vbmUgPT4gdW5kZWYsCiAgICAgICAgICAgIExhbmd1YWdlT2JqZWN0ICAgICAgID0+ICRFc0xhbmd1YWdlT2JqZWN0CiAgICAgICAgfSwKICAgICAgICBFeHBlY3RlZFJlc3VsdHMgPT4gewogICAgICAgICAgICBOYW1lICAgICAgPT4gJ0R5bmFtaWNGaWVsZF9UZXh0QXJlYUZpZWxkJywKICAgICAgICAgICAgVGl0bGUgICAgID0+ICdQcm9waWV0YXJpbycsCiAgICAgICAgICAgIERhdGF0eXBlICA9PiAnVGV4dCcsCiAgICAgICAgICAgIFZpZXd0eXBlICA9PiAnVGV4dEFyZWEnLAogICAgICAgICAgICBNaW4gICAgICAgPT4gMSwKICAgICAgICAgICAgTWF4ICAgICAgID0+IDIwMDAwLAogICAgICAgICAgICBNYW5kYXRvcnkgPT4gMCwKICAgICAgICAgICAgRGVmYXVsdCAgID0+ICdQcmlvcml0eScsCiAgICAgICAgfSwKICAgIH0sCiAgICB7CiAgICAgICAgTmFtZSAgID0+ICdEeW5hbWljRmllbGQgQ2hlY2tib3ggRU4nLAogICAgICAgIENvbmZpZyA9PiB7CiAgICAgICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyAgID0+ICREeW5hbWljRmllbGRDb25maWdze0NoZWNrYm94fSwKICAgICAgICAgICAgVmFsdWUgICAgICAgICAgICAgICAgPT4gMSwKICAgICAgICAgICAgTWFuZGF0b3J5ICAgICAgICAgICAgPT4gMCwKICAgICAgICAgICAgVXNlRGVmYXVsdFZhbHVlICAgICAgPT4gMCwKICAgICAgICAgICAgT3ZlcnJpZGVQb3NzaWJsZU5vbmUgPT4gdW5kZWYsCiAgICAgICAgICAgIExhbmd1YWdlT2JqZWN0ICAgICAgID0+ICRFbkxhbmd1YWdlT2JqZWN0CiAgICAgICAgfSwKICAgICAgICBFeHBlY3RlZFJlc3VsdHMgPT4gewogICAgICAgICAgICBOYW1lICAgICAgPT4gJ0R5bmFtaWNGaWVsZF9DaGVja2JveEZpZWxkJywKICAgICAgICAgICAgVGl0bGUgICAgID0+ICdPd25lcicsCiAgICAgICAgICAgIERhdGF0eXBlICA9PiAnVGV4dCcsCiAgICAgICAgICAgIFZpZXd0eXBlICA9PiAnUGlja2VyJywKICAgICAgICAgICAgTWFuZGF0b3J5ID0+IDAsCiAgICAgICAgICAgIE9wdGlvbnMgICA9PiB7CiAgICAgICAgICAgICAgICAwID0+ICdVbmNoZWNrZWQnLAogICAgICAgICAgICAgICAgMSA9PiAnQ2hlY2tlZCcsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIERlZmF1bHQgPT4gMSwKICAgICAgICB9LAogICAgfSwKICAgIHsKICAgICAgICBOYW1lICAgPT4gJ0R5bmFtaWNGaWVsZCBDaGVja2JveCBFUycsCiAgICAgICAgQ29uZmlnID0+IHsKICAgICAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnICAgPT4gJER5bmFtaWNGaWVsZENvbmZpZ3N7Q2hlY2tib3h9LAogICAgICAgICAgICBWYWx1ZSAgICAgICAgICAgICAgICA9PiAwLAogICAgICAgICAgICBNYW5kYXRvcnkgICAgICAgICAgICA9PiAxLAogICAgICAgICAgICBVc2VEZWZhdWx0VmFsdWUgICAgICA9PiAxLAogICAgICAgICAgICBPdmVycmlkZVBvc3NpYmxlTm9uZSA9PiB1bmRlZiwKICAgICAgICAgICAgTGFuZ3VhZ2VPYmplY3QgICAgICAgPT4gJEVzTGFuZ3VhZ2VPYmplY3QKICAgICAgICB9LAogICAgICAgIEV4cGVjdGVkUmVzdWx0cyA9PiB7CiAgICAgICAgICAgIE5hbWUgICAgICA9PiAnRHluYW1pY0ZpZWxkX0NoZWNrYm94RmllbGQnLAogICAgICAgICAgICBUaXRsZSAgICAgPT4gJ1Byb3BpZXRhcmlvJywKICAgICAgICAgICAgRGF0YXR5cGUgID0+ICdUZXh0JywKICAgICAgICAgICAgVmlld3R5cGUgID0+ICdQaWNrZXInLAogICAgICAgICAgICBNYW5kYXRvcnkgPT4gMSwKICAgICAgICAgICAgT3B0aW9ucyAgID0+IHsKICAgICAgICAgICAgICAgIDAgPT4gJ1VuY2hlY2tlZCcsCiAgICAgICAgICAgICAgICAxID0+ICdDaGVja2VkJywKICAgICAgICAgICAgfSwKICAgICAgICAgICAgRGVmYXVsdCA9PiAwLAogICAgICAgIH0sCiAgICB9LAogICAgewogICAgICAgIE5hbWUgICA9PiAnRHluYW1pY0ZpZWxkIERyb3Bkb3duIEVOJywKICAgICAgICBDb25maWcgPT4gewogICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgICA9PiAkRHluYW1pY0ZpZWxkQ29uZmlnc3tEcm9wZG93bn0sCiAgICAgICAgICAgIFZhbHVlICAgICAgICAgICAgICAgID0+IDIsCiAgICAgICAgICAgIE1hbmRhdG9yeSAgICAgICAgICAgID0+IDEsCiAgICAgICAgICAgIFVzZURlZmF1bHRWYWx1ZSAgICAgID0+IDEsCiAgICAgICAgICAgIE92ZXJyaWRlUG9zc2libGVOb25lID0+IHVuZGVmLAogICAgICAgICAgICBMYW5ndWFnZU9iamVjdCAgICAgICA9PiAkRW5MYW5ndWFnZU9iamVjdAogICAgICAgIH0sCiAgICAgICAgRXhwZWN0ZWRSZXN1bHRzID0+IHsKICAgICAgICAgICAgTmFtZSAgICAgID0+ICdEeW5hbWljRmllbGRfRHJvcGRvd25GaWVsZCcsCiAgICAgICAgICAgIFRpdGxlICAgICA9PiAnT3duZXInLAogICAgICAgICAgICBEYXRhdHlwZSAgPT4gJ1RleHQnLAogICAgICAgICAgICBWaWV3dHlwZSAgPT4gJ1BpY2tlcicsCiAgICAgICAgICAgIE1hbmRhdG9yeSA9PiAxLAogICAgICAgICAgICBPcHRpb25zICAgPT4gewogICAgICAgICAgICAgICAgMSA9PiAnUHJpb3JpdHknLAogICAgICAgICAgICAgICAgMiA9PiAnU3RhdGUnLAogICAgICAgICAgICB9LAogICAgICAgICAgICBEZWZhdWx0ID0+IDIsCiAgICAgICAgfSwKICAgIH0sCiAgICB7CiAgICAgICAgTmFtZSAgID0+ICdEeW5hbWljRmllbGQgRHJvcGRvd24gRVMnLAogICAgICAgIENvbmZpZyA9PiB7CiAgICAgICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyAgID0+ICREeW5hbWljRmllbGRDb25maWdze0Ryb3Bkb3dufSwKICAgICAgICAgICAgVmFsdWUgICAgICAgICAgICAgICAgPT4gMiwKICAgICAgICAgICAgTWFuZGF0b3J5ICAgICAgICAgICAgPT4gMSwKICAgICAgICAgICAgVXNlRGVmYXVsdFZhbHVlICAgICAgPT4gMSwKICAgICAgICAgICAgT3ZlcnJpZGVQb3NzaWJsZU5vbmUgPT4gMSwKICAgICAgICAgICAgTGFuZ3VhZ2VPYmplY3QgICAgICAgPT4gJEVzTGFuZ3VhZ2VPYmplY3QKICAgICAgICB9LAogICAgICAgIEV4cGVjdGVkUmVzdWx0cyA9PiB7CiAgICAgICAgICAgIE5hbWUgICAgICA9PiAnRHluYW1pY0ZpZWxkX0Ryb3Bkb3duRmllbGQnLAogICAgICAgICAgICBUaXRsZSAgICAgPT4gJ1Byb3BpZXRhcmlvJywKICAgICAgICAgICAgRGF0YXR5cGUgID0+ICdUZXh0JywKICAgICAgICAgICAgVmlld3R5cGUgID0+ICdQaWNrZXInLAogICAgICAgICAgICBNYW5kYXRvcnkgPT4gMSwKICAgICAgICAgICAgT3B0aW9ucyAgID0+IHsKICAgICAgICAgICAgICAgICcnID0+ICctJywKICAgICAgICAgICAgICAgIDEgID0+ICdQcmlvcmlkYWQnLAogICAgICAgICAgICAgICAgMiAgPT4gJ0VzdGFkbycsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIERlZmF1bHQgPT4gMiwKICAgICAgICB9LAogICAgfSwKICAgIHsKICAgICAgICBOYW1lICAgPT4gJ0R5bmFtaWNGaWVsZCBNdWx0aXNlbGVjdCcsCiAgICAgICAgQ29uZmlnID0+IHsKICAgICAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnICAgPT4gJER5bmFtaWNGaWVsZENvbmZpZ3N7TXVsdGlzZWxlY3R9LAogICAgICAgICAgICBWYWx1ZSAgICAgICAgICAgICAgICA9PiAyLAogICAgICAgICAgICBNYW5kYXRvcnkgICAgICAgICAgICA9PiAxLAogICAgICAgICAgICBVc2VEZWZhdWx0VmFsdWUgICAgICA9PiAxLAogICAgICAgICAgICBPdmVycmlkZVBvc3NpYmxlTm9uZSA9PiB1bmRlZiwKICAgICAgICAgICAgTGFuZ3VhZ2VPYmplY3QgICAgICAgPT4gJEVuTGFuZ3VhZ2VPYmplY3QKICAgICAgICB9LAogICAgICAgIEV4cGVjdGVkUmVzdWx0cyA9PiAnJywKICAgIH0sCiAgICB7CiAgICAgICAgTmFtZSAgID0+ICdEeW5hbWljRmllbGQgRGF0ZVRpbWUgRU4nLAogICAgICAgIENvbmZpZyA9PiB7CiAgICAgICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyAgID0+ICREeW5hbWljRmllbGRDb25maWdze0RhdGVUaW1lfSwKICAgICAgICAgICAgVmFsdWUgICAgICAgICAgICAgICAgPT4gJzIwMTMvMDgvMjEgMTM6NDYnLAogICAgICAgICAgICBNYW5kYXRvcnkgICAgICAgICAgICA9PiAxLAogICAgICAgICAgICBVc2VEZWZhdWx0VmFsdWUgICAgICA9PiAxLAogICAgICAgICAgICBPdmVycmlkZVBvc3NpYmxlTm9uZSA9PiB1bmRlZiwKICAgICAgICAgICAgTGFuZ3VhZ2VPYmplY3QgICAgICAgPT4gJEVuTGFuZ3VhZ2VPYmplY3QKICAgICAgICB9LAogICAgICAgIEV4cGVjdGVkUmVzdWx0cyA9PiB7CiAgICAgICAgICAgIE5hbWUgICAgICA9PiAnRHluYW1pY0ZpZWxkX0RhdGVUaW1lRmllbGQnLAogICAgICAgICAgICBUaXRsZSAgICAgPT4gJ093bmVyJywKICAgICAgICAgICAgRGF0YXR5cGUgID0+ICdEYXRlVGltZScsCiAgICAgICAgICAgIFZpZXd0eXBlICA9PiAnUGlja2VyJywKICAgICAgICAgICAgTWFuZGF0b3J5ID0+IDEsCiAgICAgICAgICAgIERlZmF1bHQgICA9PiAnMjAxMy8wOC8yMSAxMzo0NicsCiAgICAgICAgfSwKICAgIH0sCiAgICB7CiAgICAgICAgTmFtZSAgID0+ICdEeW5hbWljRmllbGQgRGF0ZVRpbWUgRVMnLAogICAgICAgIENvbmZpZyA9PiB7CiAgICAgICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyAgID0+ICREeW5hbWljRmllbGRDb25maWdze0RhdGVUaW1lfSwKICAgICAgICAgICAgVmFsdWUgICAgICAgICAgICAgICAgPT4gJzIwMTMvMDgvMjEgMTM6NDYnLAogICAgICAgICAgICBNYW5kYXRvcnkgICAgICAgICAgICA9PiAxLAogICAgICAgICAgICBVc2VEZWZhdWx0VmFsdWUgICAgICA9PiAxLAogICAgICAgICAgICBPdmVycmlkZVBvc3NpYmxlTm9uZSA9PiB1bmRlZiwKICAgICAgICAgICAgTGFuZ3VhZ2VPYmplY3QgICAgICAgPT4gJEVzTGFuZ3VhZ2VPYmplY3QKICAgICAgICB9LAogICAgICAgIEV4cGVjdGVkUmVzdWx0cyA9PiB7CiAgICAgICAgICAgIE5hbWUgICAgICA9PiAnRHluYW1pY0ZpZWxkX0RhdGVUaW1lRmllbGQnLAogICAgICAgICAgICBUaXRsZSAgICAgPT4gJ1Byb3BpZXRhcmlvJywKICAgICAgICAgICAgRGF0YXR5cGUgID0+ICdEYXRlVGltZScsCiAgICAgICAgICAgIFZpZXd0eXBlICA9PiAnUGlja2VyJywKICAgICAgICAgICAgTWFuZGF0b3J5ID0+IDEsCiAgICAgICAgICAgIERlZmF1bHQgICA9PiAnMjAxMy8wOC8yMSAxMzo0NicsCiAgICAgICAgfSwKICAgIH0sCiAgICB7CiAgICAgICAgTmFtZSAgID0+ICdEeW5hbWljRmllbGQgRGF0ZSBFTicsCiAgICAgICAgQ29uZmlnID0+IHsKICAgICAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnICAgPT4gJER5bmFtaWNGaWVsZENvbmZpZ3N7RGF0ZX0sCiAgICAgICAgICAgIFZhbHVlICAgICAgICAgICAgICAgID0+ICcyMDEzLzA4LzIxIDEzOjQ2JywKICAgICAgICAgICAgTWFuZGF0b3J5ICAgICAgICAgICAgPT4gMSwKICAgICAgICAgICAgVXNlRGVmYXVsdFZhbHVlICAgICAgPT4gMSwKICAgICAgICAgICAgT3ZlcnJpZGVQb3NzaWJsZU5vbmUgPT4gdW5kZWYsCiAgICAgICAgICAgIExhbmd1YWdlT2JqZWN0ICAgICAgID0+ICRFbkxhbmd1YWdlT2JqZWN0CiAgICAgICAgfSwKICAgICAgICBFeHBlY3RlZFJlc3VsdHMgPT4gewogICAgICAgICAgICBOYW1lICAgICAgPT4gJ0R5bmFtaWNGaWVsZF9EYXRlRmllbGQnLAogICAgICAgICAgICBUaXRsZSAgICAgPT4gJ093bmVyJywKICAgICAgICAgICAgRGF0YXR5cGUgID0+ICdEYXRlJywKICAgICAgICAgICAgVmlld3R5cGUgID0+ICdQaWNrZXInLAogICAgICAgICAgICBNYW5kYXRvcnkgPT4gMSwKICAgICAgICAgICAgRGVmYXVsdCAgID0+ICcyMDEzLzA4LzIxIDEzOjQ2JywKICAgICAgICB9LAogICAgfSwKICAgIHsKICAgICAgICBOYW1lICAgPT4gJ0R5bmFtaWNGaWVsZCBEYXRlIEVTJywKICAgICAgICBDb25maWcgPT4gewogICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgICA9PiAkRHluYW1pY0ZpZWxkQ29uZmlnc3tEYXRlfSwKICAgICAgICAgICAgVmFsdWUgICAgICAgICAgICAgICAgPT4gJzIwMTMvMDgvMjEgMTM6NDYnLAogICAgICAgICAgICBNYW5kYXRvcnkgICAgICAgICAgICA9PiAxLAogICAgICAgICAgICBVc2VEZWZhdWx0VmFsdWUgICAgICA9PiAxLAogICAgICAgICAgICBPdmVycmlkZVBvc3NpYmxlTm9uZSA9PiB1bmRlZiwKICAgICAgICAgICAgTGFuZ3VhZ2VPYmplY3QgICAgICAgPT4gJEVzTGFuZ3VhZ2VPYmplY3QKICAgICAgICB9LAogICAgICAgIEV4cGVjdGVkUmVzdWx0cyA9PiB7CiAgICAgICAgICAgIE5hbWUgICAgICA9PiAnRHluYW1pY0ZpZWxkX0RhdGVGaWVsZCcsCiAgICAgICAgICAgIFRpdGxlICAgICA9PiAnUHJvcGlldGFyaW8nLAogICAgICAgICAgICBEYXRhdHlwZSAgPT4gJ0RhdGUnLAogICAgICAgICAgICBWaWV3dHlwZSAgPT4gJ1BpY2tlcicsCiAgICAgICAgICAgIE1hbmRhdG9yeSA9PiAxLAogICAgICAgICAgICBEZWZhdWx0ICAgPT4gJzIwMTMvMDgvMjEgMTM6NDYnLAogICAgICAgIH0sCiAgICB9LAopOwoKIyBleGVjdXRlIHRlc3RzCmZvciBteSAkVGVzdCAoQFRlc3RzKSB7CgogICAgIyBjYWxsIElQaG9uZUZpZWxkUGFyYW1ldGVyQnVpbGQKICAgIG15ICRGaWVsZERlZmluaXRpb24gPSAkREZCYWNrZW5kT2JqZWN0LT5JUGhvbmVGaWVsZFBhcmFtZXRlckJ1aWxkKCAleyAkVGVzdC0+e0NvbmZpZ30gfSApOwoKICAgIGlmICggSXNIYXNoUmVmV2l0aERhdGEoICRUZXN0LT57RXhwZWN0ZWRSZXN1bHRzfSApICkgewogICAgICAgICRTZWxmLT5Jc0RlZXBseSgKICAgICAgICAgICAgJEZpZWxkRGVmaW5pdGlvbiwKICAgICAgICAgICAgJFRlc3QtPntFeHBlY3RlZFJlc3VsdHN9LAogICAgICAgICAgICAiJFRlc3QtPntOYW1lfSBJUGhvbmVGaWVsZFBhcmFtZXRlckJ1aWxkKCkgOiIKICAgICAgICApOwogICAgfQogICAgZWxzZSB7CiAgICAgICAgJFNlbGYtPklzKAogICAgICAgICAgICAkRmllbGREZWZpbml0aW9uLAogICAgICAgICAgICB1bmRlZiwKICAgICAgICAgICAgIiRUZXN0LT57TmFtZX0gSVBob25lRmllbGRQYXJhbWV0ZXJCdWlsZCgpIDoiCiAgICAgICAgKTsKCiAgICB9Cn0KCiMgd2UgZG9uJ3QgbmVlZCBhbnkgY2xlYW51cAoxOwo=
IyAtLQojIGlQaG9uZUZpZWxkVmFsdWVHZXQudCAtIGlQaG9uZUZpZWxkVmFsdWVHZXQgYmFja2VuZCB0ZXN0cwojIENvcHlyaWdodCAoQykgMjAwMS0yMDEzIE9UUlMgQUcsIGh0dHA6Ly9vdHJzLmNvbS8KIyAtLQojIFRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCiMgdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQuCiMgLS0KCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKdXNlIHV0Zjg7CnVzZSB2YXJzIChxdygkU2VsZikpOwoKdXNlIEtlcm5lbDo6Q29uZmlnOwp1c2UgS2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZDo6QmFja2VuZDsKdXNlIEtlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6SGVscGVyOwp1c2UgS2VybmVsOjpTeXN0ZW06OlZhcmlhYmxlQ2hlY2sgcXcoOmFsbCk7CgpteSAkSGVscGVyT2JqZWN0ID0gS2VybmVsOjpTeXN0ZW06OlVuaXRUZXN0OjpIZWxwZXItPm5ldygKICAgICUkU2VsZiwKICAgIFVuaXRUZXN0T2JqZWN0ID0+ICRTZWxmLAopOwoKbXkgJENvbmZpZ09iamVjdCA9IEtlcm5lbDo6Q29uZmlnLT5uZXcoKTsKCiRDb25maWdPYmplY3QtPlNldCgKICAgIEtleSAgID0+ICdUaW1lWm9uZVVzZXInLAogICAgVmFsdWUgPT4gMQopOwoKbXkgJERGQmFja2VuZE9iamVjdCA9IEtlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQ6OkJhY2tlbmQtPm5ldygKICAgICV7JFNlbGZ9LAogICAgQ29uZmlnT2JqZWN0ID0+ICRDb25maWdPYmplY3QKKTsKCiMgdGhlcmVzIGlzIG5vdCByZWFsbHkgbmVlZGVkIHRvIGFkZCB0aGUgZHluYW1pYyBmaWVsZHMgZm9yIHRoaXMgdGVzdCwgd2UgY2FuIGRlZmluZSBhIHN0YXRpYwojIHNldCBvZiBjb25maWd1cmF0aW9ucwpteSAlRHluYW1pY0ZpZWxkQ29uZmlncyA9ICgKICAgIFRleHQgPT4gewogICAgICAgIElEICAgICAgICAgICAgPT4gMTIzLAogICAgICAgIEludGVybmFsRmllbGQgPT4gMCwKICAgICAgICBOYW1lICAgICAgICAgID0+ICdUZXh0RmllbGQnLAogICAgICAgIExhYmVsICAgICAgICAgPT4gJ093bmVyJywKICAgICAgICBGaWVsZE9yZGVyICAgID0+IDEyMywKICAgICAgICBGaWVsZFR5cGUgICAgID0+ICdUZXh0JywKICAgICAgICBPYmplY3RUeXBlICAgID0+ICdUaWNrZXQnLAogICAgICAgIENvbmZpZyAgICAgICAgPT4gewogICAgICAgICAgICBEZWZhdWx0VmFsdWUgPT4gJycsCiAgICAgICAgICAgIExpbmsgICAgICAgICA9PiAnJywKICAgICAgICB9LAogICAgICAgIFZhbGlkSUQgICAgPT4gMSwKICAgICAgICBDcmVhdGVUaW1lID0+ICcyMDExLTAyLTA4IDE1OjA4OjAwJywKICAgICAgICBDaGFuZ2VUaW1lID0+ICcyMDExLTA2LTExIDE3OjIyOjAwJywKICAgIH0sCiAgICBUZXh0QXJlYSA9PiB7CiAgICAgICAgSUQgICAgICAgICAgICA9PiAxMjMsCiAgICAgICAgSW50ZXJuYWxGaWVsZCA9PiAwLAogICAgICAgIE5hbWUgICAgICAgICAgPT4gJ1RleHRBcmVhRmllbGQnLAogICAgICAgIExhYmVsICAgICAgICAgPT4gJ093bmVyJywKICAgICAgICBGaWVsZE9yZGVyICAgID0+IDEyMywKICAgICAgICBGaWVsZFR5cGUgICAgID0+ICdUZXh0QXJlYScsCiAgICAgICAgT2JqZWN0VHlwZSAgICA9PiAnVGlja2V0JywKICAgICAgICBDb25maWcgICAgICAgID0+IHsKICAgICAgICAgICAgRGVmYXVsdFZhbHVlID0+ICcnLAogICAgICAgICAgICBSb3dzICAgICAgICAgPT4gJycsCiAgICAgICAgICAgIENvbHMgICAgICAgICA9PiAnJywKICAgICAgICB9LAogICAgICAgIFZhbGlkSUQgICAgPT4gMSwKICAgICAgICBDcmVhdGVUaW1lID0+ICcyMDExLTAyLTA4IDE1OjA4OjAwJywKICAgICAgICBDaGFuZ2VUaW1lID0+ICcyMDExLTA2LTExIDE3OjIyOjAwJywKICAgIH0sCiAgICBDaGVja2JveCA9PiB7CiAgICAgICAgSUQgICAgICAgICAgICA9PiAxMjMsCiAgICAgICAgSW50ZXJuYWxGaWVsZCA9PiAwLAogICAgICAgIE5hbWUgICAgICAgICAgPT4gJ0NoZWNrYm94RmllbGQnLAogICAgICAgIExhYmVsICAgICAgICAgPT4gJ093bmVyJywKICAgICAgICBGaWVsZE9yZGVyICAgID0+IDEyMywKICAgICAgICBGaWVsZFR5cGUgICAgID0+ICdDaGVja2JveCcsCiAgICAgICAgT2JqZWN0VHlwZSAgICA9PiAnVGlja2V0JywKICAgICAgICBDb25maWcgICAgICAgID0+IHsKICAgICAgICAgICAgRGVmYXVsdFZhbHVlID0+ICcnLAogICAgICAgIH0sCiAgICAgICAgVmFsaWRJRCAgICA9PiAxLAogICAgICAgIENyZWF0ZVRpbWUgPT4gJzIwMTEtMDItMDggMTU6MDg6MDAnLAogICAgICAgIENoYW5nZVRpbWUgPT4gJzIwMTEtMDYtMTEgMTc6MjI6MDAnLAogICAgfSwKICAgIERyb3Bkb3duID0+IHsKICAgICAgICBJRCAgICAgICAgICAgID0+IDEyMywKICAgICAgICBJbnRlcm5hbEZpZWxkID0+IDAsCiAgICAgICAgTmFtZSAgICAgICAgICA9PiAnRHJvcGRvd25GaWVsZCcsCiAgICAgICAgTGFiZWwgICAgICAgICA9PiAnT3duZXInLAogICAgICAgIEZpZWxkT3JkZXIgICAgPT4gMTIzLAogICAgICAgIEZpZWxkVHlwZSAgICAgPT4gJ0Ryb3Bkb3duJywKICAgICAgICBPYmplY3RUeXBlICAgID0+ICdUaWNrZXQnLAogICAgICAgIENvbmZpZyAgICAgICAgPT4gewogICAgICAgICAgICBEZWZhdWx0VmFsdWUgICAgICAgPT4gJycsCiAgICAgICAgICAgIExpbmsgICAgICAgICAgICAgICA9PiAnJywKICAgICAgICAgICAgUG9zc2libGVOb25lICAgICAgID0+ICcnLAogICAgICAgICAgICBUcmFuc2xhdGFibGVWYWx1ZXMgPT4gMSwKICAgICAgICAgICAgUG9zc2libGVWYWx1ZXMgICAgID0+IHsKICAgICAgICAgICAgICAgIDEgPT4gJ1ByaW9yaXR5JywKICAgICAgICAgICAgICAgIDIgPT4gJ1N0YXRlJywKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIFZhbGlkSUQgICAgPT4gMSwKICAgICAgICBDcmVhdGVUaW1lID0+ICcyMDExLTAyLTA4IDE1OjA4OjAwJywKICAgICAgICBDaGFuZ2VUaW1lID0+ICcyMDExLTA2LTExIDE3OjIyOjAwJywKICAgIH0sCiAgICBNdWx0aXNlbGVjdCA9PiB7CiAgICAgICAgSUQgICAgICAgICAgICA9PiAxMjMsCiAgICAgICAgSW50ZXJuYWxGaWVsZCA9PiAwLAogICAgICAgIE5hbWUgICAgICAgICAgPT4gJ011bHRpc2VsZWN0RmllbGQnLAogICAgICAgIExhYmVsICAgICAgICAgPT4gJ093bmVyJywKICAgICAgICBGaWVsZE9yZGVyICAgID0+IDEyMywKICAgICAgICBGaWVsZFR5cGUgICAgID0+ICdNdWx0aXNlbGVjdCcsCiAgICAgICAgT2JqZWN0VHlwZSAgICA9PiAnVGlja2V0JywKICAgICAgICBDb25maWcgICAgICAgID0+IHsKICAgICAgICAgICAgRGVmYXVsdFZhbHVlICAgICAgID0+ICcnLAogICAgICAgICAgICBQb3NzaWJsZU5vbmUgICAgICAgPT4gJycsCiAgICAgICAgICAgIFRyYW5zbGF0YWJsZVZhbHVlcyA9PiAxLAogICAgICAgICAgICBQb3NzaWJsZVZhbHVlcyAgICAgPT4gewogICAgICAgICAgICAgICAgMSA9PiAnUHJpb3JpdHknLAogICAgICAgICAgICAgICAgMiA9PiAnU3RhdGUnLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgVmFsaWRJRCAgICA9PiAxLAogICAgICAgIENyZWF0ZVRpbWUgPT4gJzIwMTEtMDItMDggMTU6MDg6MDAnLAogICAgICAgIENoYW5nZVRpbWUgPT4gJzIwMTEtMDYtMTEgMTc6MjI6MDAnLAogICAgfSwKICAgIERhdGVUaW1lID0+IHsKICAgICAgICBJRCAgICAgICAgICAgID0+IDEyMywKICAgICAgICBJbnRlcm5hbEZpZWxkID0+IDAsCiAgICAgICAgTmFtZSAgICAgICAgICA9PiAnRGF0ZVRpbWVGaWVsZCcsCiAgICAgICAgTGFiZWwgICAgICAgICA9PiAnT3duZXInLAogICAgICAgIEZpZWxkT3JkZXIgICAgPT4gMTIzLAogICAgICAgIEZpZWxkVHlwZSAgICAgPT4gJ0RhdGVUaW1lJywKICAgICAgICBPYmplY3RUeXBlICAgID0+ICdUaWNrZXQnLAogICAgICAgIENvbmZpZyAgICAgICAgPT4gewogICAgICAgICAgICBEZWZhdWx0VmFsdWUgID0+IHVuZGVmLAogICAgICAgICAgICBMaW5rICAgICAgICAgID0+ICcnLAogICAgICAgICAgICBZZWFyc1BlcmlvZCAgID0+ICcnLAogICAgICAgICAgICBZZWFyc0luRnV0dXJlID0+ICcnLAogICAgICAgICAgICBZZWFyc0luUGFzdCAgID0+ICcnLAogICAgICAgIH0sCiAgICAgICAgVmFsaWRJRCAgICA9PiAxLAogICAgICAgIENyZWF0ZVRpbWUgPT4gJzIwMTEtMDItMDggMTU6MDg6MDAnLAogICAgICAgIENoYW5nZVRpbWUgPT4gJzIwMTEtMDYtMTEgMTc6MjI6MDAnLAogICAgfSwKICAgIERhdGUgPT4gewogICAgICAgIElEICAgICAgICAgICAgPT4gMTIzLAogICAgICAgIEludGVybmFsRmllbGQgPT4gMCwKICAgICAgICBOYW1lICAgICAgICAgID0+ICdEYXRlRmllbGQnLAogICAgICAgIExhYmVsICAgICAgICAgPT4gJ093bmVyJywKICAgICAgICBGaWVsZE9yZGVyICAgID0+IDEyMywKICAgICAgICBGaWVsZFR5cGUgICAgID0+ICdEYXRlJywKICAgICAgICBPYmplY3RUeXBlICAgID0+ICdUaWNrZXQnLAogICAgICAgIENvbmZpZyAgICAgICAgPT4gewogICAgICAgICAgICBEZWZhdWx0VmFsdWUgID0+ICcnLAogICAgICAgICAgICBMaW5rICAgICAgICAgID0+ICcnLAogICAgICAgICAgICBZZWFyc1BlcmlvZCAgID0+ICcnLAogICAgICAgICAgICBZZWFyc0luRnV0dXJlID0+ICcnLAogICAgICAgICAgICBZZWFyc0luUGFzdCAgID0+ICcnLAogICAgICAgIH0sCiAgICAgICAgVmFsaWRJRCAgICA9PiAxLAogICAgICAgIENyZWF0ZVRpbWUgPT4gJzIwMTEtMDItMDggMTU6MDg6MDAnLAogICAgICAgIENoYW5nZVRpbWUgPT4gJzIwMTEtMDYtMTEgMTc6MjI6MDAnLAogICAgfSwKKTsKCiMgZGVmaW5lIHRlc3RzCm15IEBUZXN0cyA9ICgKICAgIHsKICAgICAgICBOYW1lICAgPT4gJ0R5bmFtaWNGaWVsZCBUZXh0JywKICAgICAgICBDb25maWcgPT4gewogICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgICAgID0+ICREeW5hbWljRmllbGRDb25maWdze1RleHR9LAogICAgICAgICAgICBEeW5hbWljRmllbGRfVGV4dEZpZWxkID0+ICdQcmlvcml0eScsCiAgICAgICAgfSwKICAgICAgICBFeHBlY3RlZFJlc3VsdCA9PiAnUHJpb3JpdHknLAogICAgfSwKICAgIHsKICAgICAgICBOYW1lICAgPT4gJ0R5bmFtaWNGaWVsZCBUZXh0IEFyZWEnLAogICAgICAgIENvbmZpZyA9PiB7CiAgICAgICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyAgICAgICAgID0+ICREeW5hbWljRmllbGRDb25maWdze1RleHRBcmVhfSwKICAgICAgICAgICAgRHluYW1pY0ZpZWxkX1RleHRBcmVhRmllbGQgPT4gJ1ByaW9yaXR5JywKICAgICAgICB9LAogICAgICAgIEV4cGVjdGVkUmVzdWx0ID0+ICdQcmlvcml0eScsCiAgICB9LAogICAgewogICAgICAgIE5hbWUgICA9PiAnRHluYW1pY0ZpZWxkIENoZWNrYm94JywKICAgICAgICBDb25maWcgPT4gewogICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgICAgICAgICA9PiAkRHluYW1pY0ZpZWxkQ29uZmlnc3tDaGVja2JveH0sCiAgICAgICAgICAgIER5bmFtaWNGaWVsZF9DaGVja2JveEZpZWxkID0+IDEsCiAgICAgICAgfSwKICAgICAgICBFeHBlY3RlZFJlc3VsdCA9PiAxLAogICAgfSwKICAgIHsKICAgICAgICBOYW1lICAgPT4gJ0R5bmFtaWNGaWVsZCBEcm9wZG93bicsCiAgICAgICAgQ29uZmlnID0+IHsKICAgICAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnICAgICAgICAgPT4gJER5bmFtaWNGaWVsZENvbmZpZ3N7RHJvcGRvd259LAogICAgICAgICAgICBEeW5hbWljRmllbGRfRHJvcGRvd25GaWVsZCA9PiAyLAogICAgICAgIH0sCiAgICAgICAgRXhwZWN0ZWRSZXN1bHQgPT4gMiwKICAgIH0sCiAgICB7CiAgICAgICAgTmFtZSAgID0+ICdEeW5hbWljRmllbGQgTXVsdGlzZWxlY3QnLAogICAgICAgIENvbmZpZyA9PiB7CiAgICAgICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyAgICAgICAgICAgID0+ICREeW5hbWljRmllbGRDb25maWdze011bHRpc2VsZWN0fSwKICAgICAgICAgICAgRHluYW1pY0ZpZWxkX011bHRpc2VsZWN0RmllbGQgPT4gMiwKICAgICAgICB9LAogICAgICAgIEV4cGVjdGVkUmVzdWx0ID0+ICcnLAogICAgfSwKICAgIHsKICAgICAgICBOYW1lICAgPT4gJ0R5bmFtaWNGaWVsZCBEYXRlVGltZSBOb3JtYWwnLAogICAgICAgIENvbmZpZyA9PiB7CiAgICAgICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyAgICAgICAgID0+ICREeW5hbWljRmllbGRDb25maWdze0RhdGVUaW1lfSwKICAgICAgICAgICAgRHluYW1pY0ZpZWxkX0RhdGVUaW1lRmllbGQgPT4gJzIwMTMtMDgtMjEgMTM6NDY6MDAnLAogICAgICAgIH0sCiAgICAgICAgRXhwZWN0ZWRSZXN1bHQgPT4gJzIwMTMtMDgtMjEgMTM6NDY6MDAnLAogICAgfSwKICAgIHsKICAgICAgICBOYW1lICAgPT4gJ0R5bmFtaWNGaWVsZCBEYXRlVGltZSBUaW1lWm9uZSAtNicsCiAgICAgICAgQ29uZmlnID0+IHsKICAgICAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnICAgICAgICAgPT4gJER5bmFtaWNGaWVsZENvbmZpZ3N7RGF0ZVRpbWV9LAogICAgICAgICAgICBEeW5hbWljRmllbGRfRGF0ZVRpbWVGaWVsZCA9PiAnMjAxMy0wOC0yMSAxMzo0NjowMCcsCiAgICAgICAgICAgIFVzZXJUaW1lWm9uZSAgICAgICAgICAgICAgID0+IC02LAogICAgICAgIH0sCiAgICAgICAgRXhwZWN0ZWRSZXN1bHQgPT4gJzIwMTMtMDgtMjEgMTk6NDY6MDAnLAogICAgfSwKICAgIHsKICAgICAgICBOYW1lICAgPT4gJ0R5bmFtaWNGaWVsZCBEYXRlVGltZSBUaW1lWm9uZSArMTEnLAogICAgICAgIENvbmZpZyA9PiB7CiAgICAgICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyAgICAgICAgID0+ICREeW5hbWljRmllbGRDb25maWdze0RhdGVUaW1lfSwKICAgICAgICAgICAgRHluYW1pY0ZpZWxkX0RhdGVUaW1lRmllbGQgPT4gJzIwMTMtMDgtMjEgOTo0NjowMCcsCiAgICAgICAgICAgIFVzZXJUaW1lWm9uZSAgICAgICAgICAgICAgID0+IDExLAogICAgICAgIH0sCiAgICAgICAgRXhwZWN0ZWRSZXN1bHQgPT4gJzIwMTMtMDgtMjAgMjI6NDY6MDAnLAogICAgfSwKICAgIHsKICAgICAgICBOYW1lICAgPT4gJ0R5bmFtaWNGaWVsZCBEYXRlIE5vcm1hbCcsCiAgICAgICAgQ29uZmlnID0+IHsKICAgICAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnICAgICA9PiAkRHluYW1pY0ZpZWxkQ29uZmlnc3tEYXRlfSwKICAgICAgICAgICAgRHluYW1pY0ZpZWxkX0RhdGVGaWVsZCA9PiAnMjAxMy0wOC0yMSAxMzo0NicsCiAgICAgICAgfSwKICAgICAgICBFeHBlY3RlZFJlc3VsdCA9PiAnMjAxMy0wOC0yMSAwMDowMDowMCcsCiAgICB9LAogICAgewogICAgICAgIE5hbWUgICA9PiAnRHluYW1pY0ZpZWxkIERhdGUgVGltZVpvbmUgLTYnLAogICAgICAgIENvbmZpZyA9PiB7CiAgICAgICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyAgICAgPT4gJER5bmFtaWNGaWVsZENvbmZpZ3N7RGF0ZX0sCiAgICAgICAgICAgIER5bmFtaWNGaWVsZF9EYXRlRmllbGQgPT4gJzIwMTMtMDgtMjEgMTM6NDYnLAogICAgICAgICAgICBVc2VyVGltZVpvbmUgICAgICAgICAgID0+IC02LAogICAgICAgIH0sCiAgICAgICAgRXhwZWN0ZWRSZXN1bHQgPT4gJzIwMTMtMDgtMjEgMDA6MDA6MDAnLAogICAgfSwKICAgIHsKICAgICAgICBOYW1lICAgPT4gJ0R5bmFtaWNGaWVsZCBEYXRlIFRpbWVab25lICsxMScsCiAgICAgICAgQ29uZmlnID0+IHsKICAgICAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnICAgICA9PiAkRHluYW1pY0ZpZWxkQ29uZmlnc3tEYXRlfSwKICAgICAgICAgICAgRHluYW1pY0ZpZWxkX0RhdGVGaWVsZCA9PiAnMjAxMy0wOC0yMSAxMzo0NicsCiAgICAgICAgICAgIFVzZXJUaW1lWm9uZSAgICAgICAgICAgPT4gMTEsCiAgICAgICAgfSwKICAgICAgICBFeHBlY3RlZFJlc3VsdCA9PiAnMjAxMy0wOC0yMSAwMDowMDowMCcsCiAgICB9LAopOwoKIyBleGVjdXRlIHRlc3RzCmZvciBteSAkVGVzdCAoQFRlc3RzKSB7CgogICAgIyBjYWxsIElQaG9uZUZpZWxkVmFsdWVHZXQKICAgIG15ICRWYWx1ZSA9ICRERkJhY2tlbmRPYmplY3QtPklQaG9uZUZpZWxkVmFsdWVHZXQoICV7ICRUZXN0LT57Q29uZmlnfSB9ICk7CgogICAgaWYgKCAkVGVzdC0+e0V4cGVjdGVkUmVzdWx0fSApIHsKICAgICAgICAkU2VsZi0+SXMoCiAgICAgICAgICAgICRWYWx1ZSwKICAgICAgICAgICAgJFRlc3QtPntFeHBlY3RlZFJlc3VsdH0sCiAgICAgICAgICAgICIkVGVzdC0+e05hbWV9IElQaG9uZUZpZWxkVmFsdWVHZXQoKSA6IgogICAgICAgICk7CiAgICB9CiAgICBlbHNlIHsKICAgICAgICAkU2VsZi0+SXMoCiAgICAgICAgICAgICRWYWx1ZSwKICAgICAgICAgICAgdW5kZWYsCiAgICAgICAgICAgICIkVGVzdC0+e05hbWV9IElQaG9uZUZpZWxkVmFsdWVHZXQoKSA6IgogICAgICAgICk7CiAgICB9Cn0KCiMgd2UgZG9uJ3QgbmVlZCBhbnkgY2xlYW51cAoxOwo=
IyAtLQojIGlQaG9uZUZpZWxkVmFsdWVWYWxpZGF0ZS50IC0gaVBob25lRmllbGRWYWx1ZVZhbGlkYXRlIGJhY2tlbmQgdGVzdHMKIyBDb3B5cmlnaHQgKEMpIDIwMDEtMjAxMyBPVFJTIEFHLCBodHRwOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEFHUEwpLiBJZiB5b3UKIyBkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgaHR0cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2FncGwudHh0LgojIC0tCgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7CnVzZSB1dGY4Owp1c2UgdmFycyAocXcoJFNlbGYpKTsKCnVzZSBLZXJuZWw6OkNvbmZpZzsKdXNlIEtlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQ6OkJhY2tlbmQ7CnVzZSBLZXJuZWw6OlN5c3RlbTo6VW5pdFRlc3Q6OkhlbHBlcjsKdXNlIEtlcm5lbDo6U3lzdGVtOjpWYXJpYWJsZUNoZWNrIHF3KDphbGwpOwoKbXkgJEhlbHBlck9iamVjdCA9IEtlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6SGVscGVyLT5uZXcoCiAgICAlJFNlbGYsCiAgICBVbml0VGVzdE9iamVjdCA9PiAkU2VsZiwKKTsKCm15ICRERkJhY2tlbmRPYmplY3QgPSBLZXJuZWw6OlN5c3RlbTo6RHluYW1pY0ZpZWxkOjpCYWNrZW5kLT5uZXcoICV7JFNlbGZ9ICk7CgojIHRoZXJlcyBpcyBub3QgcmVhbGx5IG5lZWRlZCB0byBhZGQgdGhlIGR5bmFtaWMgZmllbGRzIGZvciB0aGlzIHRlc3QsIHdlIGNhbiBkZWZpbmUgYSBzdGF0aWMKIyBzZXQgb2YgY29uZmlndXJhdGlvbnMKbXkgJUR5bmFtaWNGaWVsZENvbmZpZ3MgPSAoCiAgICBUZXh0ID0+IHsKICAgICAgICBJRCAgICAgICAgICAgID0+IDEyMywKICAgICAgICBJbnRlcm5hbEZpZWxkID0+IDAsCiAgICAgICAgTmFtZSAgICAgICAgICA9PiAnVGV4dEZpZWxkJywKICAgICAgICBMYWJlbCAgICAgICAgID0+ICdPd25lcicsCiAgICAgICAgRmllbGRPcmRlciAgICA9PiAxMjMsCiAgICAgICAgRmllbGRUeXBlICAgICA9PiAnVGV4dCcsCiAgICAgICAgT2JqZWN0VHlwZSAgICA9PiAnVGlja2V0JywKICAgICAgICBDb25maWcgICAgICAgID0+IHsKICAgICAgICAgICAgRGVmYXVsdFZhbHVlID0+ICcnLAogICAgICAgICAgICBMaW5rICAgICAgICAgPT4gJycsCiAgICAgICAgfSwKICAgICAgICBWYWxpZElEICAgID0+IDEsCiAgICAgICAgQ3JlYXRlVGltZSA9PiAnMjAxMS0wMi0wOCAxNTowODowMCcsCiAgICAgICAgQ2hhbmdlVGltZSA9PiAnMjAxMS0wNi0xMSAxNzoyMjowMCcsCiAgICB9LAogICAgVGV4dEFyZWEgPT4gewogICAgICAgIElEICAgICAgICAgICAgPT4gMTIzLAogICAgICAgIEludGVybmFsRmllbGQgPT4gMCwKICAgICAgICBOYW1lICAgICAgICAgID0+ICdUZXh0QXJlYUZpZWxkJywKICAgICAgICBMYWJlbCAgICAgICAgID0+ICdPd25lcicsCiAgICAgICAgRmllbGRPcmRlciAgICA9PiAxMjMsCiAgICAgICAgRmllbGRUeXBlICAgICA9PiAnVGV4dEFyZWEnLAogICAgICAgIE9iamVjdFR5cGUgICAgPT4gJ1RpY2tldCcsCiAgICAgICAgQ29uZmlnICAgICAgICA9PiB7CiAgICAgICAgICAgIERlZmF1bHRWYWx1ZSA9PiAnJywKICAgICAgICAgICAgUm93cyAgICAgICAgID0+ICcnLAogICAgICAgICAgICBDb2xzICAgICAgICAgPT4gJycsCiAgICAgICAgfSwKICAgICAgICBWYWxpZElEICAgID0+IDEsCiAgICAgICAgQ3JlYXRlVGltZSA9PiAnMjAxMS0wMi0wOCAxNTowODowMCcsCiAgICAgICAgQ2hhbmdlVGltZSA9PiAnMjAxMS0wNi0xMSAxNzoyMjowMCcsCiAgICB9LAogICAgQ2hlY2tib3ggPT4gewogICAgICAgIElEICAgICAgICAgICAgPT4gMTIzLAogICAgICAgIEludGVybmFsRmllbGQgPT4gMCwKICAgICAgICBOYW1lICAgICAgICAgID0+ICdDaGVja2JveEZpZWxkJywKICAgICAgICBMYWJlbCAgICAgICAgID0+ICdPd25lcicsCiAgICAgICAgRmllbGRPcmRlciAgICA9PiAxMjMsCiAgICAgICAgRmllbGRUeXBlICAgICA9PiAnQ2hlY2tib3gnLAogICAgICAgIE9iamVjdFR5cGUgICAgPT4gJ1RpY2tldCcsCiAgICAgICAgQ29uZmlnICAgICAgICA9PiB7CiAgICAgICAgICAgIERlZmF1bHRWYWx1ZSA9PiAnJywKICAgICAgICB9LAogICAgICAgIFZhbGlkSUQgICAgPT4gMSwKICAgICAgICBDcmVhdGVUaW1lID0+ICcyMDExLTAyLTA4IDE1OjA4OjAwJywKICAgICAgICBDaGFuZ2VUaW1lID0+ICcyMDExLTA2LTExIDE3OjIyOjAwJywKICAgIH0sCiAgICBEcm9wZG93biA9PiB7CiAgICAgICAgSUQgICAgICAgICAgICA9PiAxMjMsCiAgICAgICAgSW50ZXJuYWxGaWVsZCA9PiAwLAogICAgICAgIE5hbWUgICAgICAgICAgPT4gJ0Ryb3Bkb3duRmllbGQnLAogICAgICAgIExhYmVsICAgICAgICAgPT4gJ093bmVyJywKICAgICAgICBGaWVsZE9yZGVyICAgID0+IDEyMywKICAgICAgICBGaWVsZFR5cGUgICAgID0+ICdEcm9wZG93bicsCiAgICAgICAgT2JqZWN0VHlwZSAgICA9PiAnVGlja2V0JywKICAgICAgICBDb25maWcgICAgICAgID0+IHsKICAgICAgICAgICAgRGVmYXVsdFZhbHVlICAgICAgID0+ICcnLAogICAgICAgICAgICBMaW5rICAgICAgICAgICAgICAgPT4gJycsCiAgICAgICAgICAgIFBvc3NpYmxlTm9uZSAgICAgICA9PiAnJywKICAgICAgICAgICAgVHJhbnNsYXRhYmxlVmFsdWVzID0+IDEsCiAgICAgICAgICAgIFBvc3NpYmxlVmFsdWVzICAgICA9PiB7CiAgICAgICAgICAgICAgICAxID0+ICdQcmlvcml0eScsCiAgICAgICAgICAgICAgICAyID0+ICdTdGF0ZScsCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICBWYWxpZElEICAgID0+IDEsCiAgICAgICAgQ3JlYXRlVGltZSA9PiAnMjAxMS0wMi0wOCAxNTowODowMCcsCiAgICAgICAgQ2hhbmdlVGltZSA9PiAnMjAxMS0wNi0xMSAxNzoyMjowMCcsCiAgICB9LAogICAgTXVsdGlzZWxlY3QgPT4gewogICAgICAgIElEICAgICAgICAgICAgPT4gMTIzLAogICAgICAgIEludGVybmFsRmllbGQgPT4gMCwKICAgICAgICBOYW1lICAgICAgICAgID0+ICdNdWx0aXNlbGVjdEZpZWxkJywKICAgICAgICBMYWJlbCAgICAgICAgID0+ICdPd25lcicsCiAgICAgICAgRmllbGRPcmRlciAgICA9PiAxMjMsCiAgICAgICAgRmllbGRUeXBlICAgICA9PiAnTXVsdGlzZWxlY3QnLAogICAgICAgIE9iamVjdFR5cGUgICAgPT4gJ1RpY2tldCcsCiAgICAgICAgQ29uZmlnICAgICAgICA9PiB7CiAgICAgICAgICAgIERlZmF1bHRWYWx1ZSAgICAgICA9PiAnJywKICAgICAgICAgICAgUG9zc2libGVOb25lICAgICAgID0+ICcnLAogICAgICAgICAgICBUcmFuc2xhdGFibGVWYWx1ZXMgPT4gMSwKICAgICAgICAgICAgUG9zc2libGVWYWx1ZXMgICAgID0+IHsKICAgICAgICAgICAgICAgIDEgPT4gJ1ByaW9yaXR5JywKICAgICAgICAgICAgICAgIDIgPT4gJ1N0YXRlJywKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIFZhbGlkSUQgICAgPT4gMSwKICAgICAgICBDcmVhdGVUaW1lID0+ICcyMDExLTAyLTA4IDE1OjA4OjAwJywKICAgICAgICBDaGFuZ2VUaW1lID0+ICcyMDExLTA2LTExIDE3OjIyOjAwJywKICAgIH0sCiAgICBEYXRlVGltZSA9PiB7CiAgICAgICAgSUQgICAgICAgICAgICA9PiAxMjMsCiAgICAgICAgSW50ZXJuYWxGaWVsZCA9PiAwLAogICAgICAgIE5hbWUgICAgICAgICAgPT4gJ0RhdGVUaW1lRmllbGQnLAogICAgICAgIExhYmVsICAgICAgICAgPT4gJ093bmVyJywKICAgICAgICBGaWVsZE9yZGVyICAgID0+IDEyMywKICAgICAgICBGaWVsZFR5cGUgICAgID0+ICdEYXRlVGltZScsCiAgICAgICAgT2JqZWN0VHlwZSAgICA9PiAnVGlja2V0JywKICAgICAgICBDb25maWcgICAgICAgID0+IHsKICAgICAgICAgICAgRGVmYXVsdFZhbHVlICA9PiB1bmRlZiwKICAgICAgICAgICAgTGluayAgICAgICAgICA9PiAnJywKICAgICAgICAgICAgWWVhcnNQZXJpb2QgICA9PiAnJywKICAgICAgICAgICAgWWVhcnNJbkZ1dHVyZSA9PiAnJywKICAgICAgICAgICAgWWVhcnNJblBhc3QgICA9PiAnJywKICAgICAgICB9LAogICAgICAgIFZhbGlkSUQgICAgPT4gMSwKICAgICAgICBDcmVhdGVUaW1lID0+ICcyMDExLTAyLTA4IDE1OjA4OjAwJywKICAgICAgICBDaGFuZ2VUaW1lID0+ICcyMDExLTA2LTExIDE3OjIyOjAwJywKICAgIH0sCiAgICBEYXRlID0+IHsKICAgICAgICBJRCAgICAgICAgICAgID0+IDEyMywKICAgICAgICBJbnRlcm5hbEZpZWxkID0+IDAsCiAgICAgICAgTmFtZSAgICAgICAgICA9PiAnRGF0ZUZpZWxkJywKICAgICAgICBMYWJlbCAgICAgICAgID0+ICdPd25lcicsCiAgICAgICAgRmllbGRPcmRlciAgICA9PiAxMjMsCiAgICAgICAgRmllbGRUeXBlICAgICA9PiAnRGF0ZScsCiAgICAgICAgT2JqZWN0VHlwZSAgICA9PiAnVGlja2V0JywKICAgICAgICBDb25maWcgICAgICAgID0+IHsKICAgICAgICAgICAgRGVmYXVsdFZhbHVlICA9PiAnJywKICAgICAgICAgICAgTGluayAgICAgICAgICA9PiAnJywKICAgICAgICAgICAgWWVhcnNQZXJpb2QgICA9PiAnJywKICAgICAgICAgICAgWWVhcnNJbkZ1dHVyZSA9PiAnJywKICAgICAgICAgICAgWWVhcnNJblBhc3QgICA9PiAnJywKICAgICAgICB9LAogICAgICAgIFZhbGlkSUQgICAgPT4gMSwKICAgICAgICBDcmVhdGVUaW1lID0+ICcyMDExLTAyLTA4IDE1OjA4OjAwJywKICAgICAgICBDaGFuZ2VUaW1lID0+ICcyMDExLTA2LTExIDE3OjIyOjAwJywKICAgIH0sCik7CgojIGRlZmluZSB0ZXN0cwpteSBAVGVzdHMgPSAoCiAgICB7CiAgICAgICAgTmFtZSAgID0+ICdEeW5hbWljRmllbGQgVGV4dCcsCiAgICAgICAgQ29uZmlnID0+IHsKICAgICAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnID0+ICREeW5hbWljRmllbGRDb25maWdze1RleHR9LAogICAgICAgICAgICBWYWx1ZSAgICAgICAgICAgICAgPT4gJ1ByaW9yaXR5JywKICAgICAgICAgICAgTWFuZGF0b3J5ICAgICAgICAgID0+IDAsCiAgICAgICAgfSwKICAgICAgICBFeHBlY3RlZFJlc3VsdHMgPT4gewogICAgICAgICAgICBTZXJ2ZXJFcnJvciAgPT4gdW5kZWYsCiAgICAgICAgICAgIEVycm9yTWVzc2FnZSA9PiB1bmRlZiwKICAgICAgICB9LAogICAgfSwKICAgIHsKICAgICAgICBOYW1lICAgPT4gJ0R5bmFtaWNGaWVsZCBUZXh0IEVtcHR5JywKICAgICAgICBDb25maWcgPT4gewogICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgPT4gJER5bmFtaWNGaWVsZENvbmZpZ3N7VGV4dH0sCiAgICAgICAgICAgIFZhbHVlICAgICAgICAgICAgICA9PiAnJywKICAgICAgICAgICAgTWFuZGF0b3J5ICAgICAgICAgID0+IDAsCgogICAgICAgIH0sCiAgICAgICAgRXhwZWN0ZWRSZXN1bHRzID0+IHsKICAgICAgICAgICAgU2VydmVyRXJyb3IgID0+IHVuZGVmLAogICAgICAgICAgICBFcnJvck1lc3NhZ2UgPT4gdW5kZWYsCiAgICAgICAgfSwKICAgIH0sCiAgICB7CiAgICAgICAgTmFtZSAgID0+ICdEeW5hbWljRmllbGQgVGV4dCBFbXB0eSBNYW5kYXRvcnknLAogICAgICAgIENvbmZpZyA9PiB7CiAgICAgICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyA9PiAkRHluYW1pY0ZpZWxkQ29uZmlnc3tUZXh0fSwKICAgICAgICAgICAgVmFsdWUgICAgICAgICAgICAgID0+ICcnLAogICAgICAgICAgICBNYW5kYXRvcnkgICAgICAgICAgPT4gMSwKICAgICAgICB9LAogICAgICAgIEV4cGVjdGVkUmVzdWx0cyA9PiB7CiAgICAgICAgICAgIFNlcnZlckVycm9yICA9PiAxLAogICAgICAgICAgICBFcnJvck1lc3NhZ2UgPT4gdW5kZWYsCiAgICAgICAgfSwKICAgIH0sCiAgICB7CiAgICAgICAgTmFtZSAgID0+ICdEeW5hbWljRmllbGQgVGV4dEFyZWEnLAogICAgICAgIENvbmZpZyA9PiB7CiAgICAgICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyA9PiAkRHluYW1pY0ZpZWxkQ29uZmlnc3tUZXh0QXJlYX0sCiAgICAgICAgICAgIFZhbHVlICAgICAgICAgICAgICA9PiAnUHJpb3JpdHknLAogICAgICAgICAgICBNYW5kYXRvcnkgICAgICAgICAgPT4gMCwKICAgICAgICB9LAogICAgICAgIEV4cGVjdGVkUmVzdWx0cyA9PiB7CiAgICAgICAgICAgIFNlcnZlckVycm9yICA9PiB1bmRlZiwKICAgICAgICAgICAgRXJyb3JNZXNzYWdlID0+IHVuZGVmLAogICAgICAgIH0sCiAgICB9LAogICAgewogICAgICAgIE5hbWUgICA9PiAnRHluYW1pY0ZpZWxkIFRleHRBcmVhIEVtcHR5JywKICAgICAgICBDb25maWcgPT4gewogICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgPT4gJER5bmFtaWNGaWVsZENvbmZpZ3N7VGV4dEFyZWF9LAogICAgICAgICAgICBWYWx1ZSAgICAgICAgICAgICAgPT4gJycsCiAgICAgICAgICAgIE1hbmRhdG9yeSAgICAgICAgICA9PiAwLAoKICAgICAgICB9LAogICAgICAgIEV4cGVjdGVkUmVzdWx0cyA9PiB7CiAgICAgICAgICAgIFNlcnZlckVycm9yICA9PiB1bmRlZiwKICAgICAgICAgICAgRXJyb3JNZXNzYWdlID0+IHVuZGVmLAogICAgICAgIH0sCiAgICB9LAogICAgewogICAgICAgIE5hbWUgICA9PiAnRHluYW1pY0ZpZWxkIFRleHRBcmVhIEVtcHR5IE1hbmRhdG9yeScsCiAgICAgICAgQ29uZmlnID0+IHsKICAgICAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnID0+ICREeW5hbWljRmllbGRDb25maWdze1RleHRBcmVhfSwKICAgICAgICAgICAgVmFsdWUgICAgICAgICAgICAgID0+ICcnLAogICAgICAgICAgICBNYW5kYXRvcnkgICAgICAgICAgPT4gMSwKICAgICAgICB9LAogICAgICAgIEV4cGVjdGVkUmVzdWx0cyA9PiB7CiAgICAgICAgICAgIFNlcnZlckVycm9yICA9PiAxLAogICAgICAgICAgICBFcnJvck1lc3NhZ2UgPT4gdW5kZWYsCiAgICAgICAgfSwKICAgIH0sCiAgICB7CiAgICAgICAgTmFtZSAgID0+ICdEeW5hbWljRmllbGQgQ2hlY2tib3gnLAogICAgICAgIENvbmZpZyA9PiB7CiAgICAgICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyA9PiAkRHluYW1pY0ZpZWxkQ29uZmlnc3tDaGVja2JveH0sCiAgICAgICAgICAgIFZhbHVlICAgICAgICAgICAgICA9PiAxLAogICAgICAgICAgICBNYW5kYXRvcnkgICAgICAgICAgPT4gMCwKICAgICAgICB9LAogICAgICAgIEV4cGVjdGVkUmVzdWx0cyA9PiB7CiAgICAgICAgICAgIFNlcnZlckVycm9yICA9PiB1bmRlZiwKICAgICAgICAgICAgRXJyb3JNZXNzYWdlID0+IHVuZGVmLAogICAgICAgIH0sCiAgICB9LAogICAgewogICAgICAgIE5hbWUgICA9PiAnRHluYW1pY0ZpZWxkIENoZWNrYm94IEVtcHR5JywKICAgICAgICBDb25maWcgPT4gewogICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgPT4gJER5bmFtaWNGaWVsZENvbmZpZ3N7Q2hlY2tib3h9LAogICAgICAgICAgICBWYWx1ZSAgICAgICAgICAgICAgPT4gMCwKICAgICAgICAgICAgTWFuZGF0b3J5ICAgICAgICAgID0+IDAsCgogICAgICAgIH0sCiAgICAgICAgRXhwZWN0ZWRSZXN1bHRzID0+IHsKICAgICAgICAgICAgU2VydmVyRXJyb3IgID0+IHVuZGVmLAogICAgICAgICAgICBFcnJvck1lc3NhZ2UgPT4gdW5kZWYsCiAgICAgICAgfSwKICAgIH0sCiAgICB7CiAgICAgICAgTmFtZSAgID0+ICdEeW5hbWljRmllbGQgQ2hlY2tib3ggRW1wdHkgTWFuZGF0b3J5JywKICAgICAgICBDb25maWcgPT4gewogICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgPT4gJER5bmFtaWNGaWVsZENvbmZpZ3N7Q2hlY2tib3h9LAogICAgICAgICAgICBWYWx1ZSAgICAgICAgICAgICAgPT4gJycsCiAgICAgICAgICAgIE1hbmRhdG9yeSAgICAgICAgICA9PiAxLAogICAgICAgIH0sCiAgICAgICAgRXhwZWN0ZWRSZXN1bHRzID0+IHsKICAgICAgICAgICAgU2VydmVyRXJyb3IgID0+IDEsCiAgICAgICAgICAgIEVycm9yTWVzc2FnZSA9PiB1bmRlZiwKICAgICAgICB9LAogICAgfSwKICAgIHsKICAgICAgICBOYW1lICAgPT4gJ0R5bmFtaWNGaWVsZCBEcm9wZG93bicsCiAgICAgICAgQ29uZmlnID0+IHsKICAgICAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnID0+ICREeW5hbWljRmllbGRDb25maWdze0Ryb3Bkb3dufSwKICAgICAgICAgICAgVmFsdWUgICAgICAgICAgICAgID0+IDEsCiAgICAgICAgICAgIE1hbmRhdG9yeSAgICAgICAgICA9PiAwLAogICAgICAgIH0sCiAgICAgICAgRXhwZWN0ZWRSZXN1bHRzID0+IHsKICAgICAgICAgICAgU2VydmVyRXJyb3IgID0+IHVuZGVmLAogICAgICAgICAgICBFcnJvck1lc3NhZ2UgPT4gdW5kZWYsCiAgICAgICAgfSwKICAgIH0sCiAgICB7CiAgICAgICAgTmFtZSAgID0+ICdEeW5hbWljRmllbGQgRHJvcGRvd24gRW1wdHknLAogICAgICAgIENvbmZpZyA9PiB7CiAgICAgICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyA9PiAkRHluYW1pY0ZpZWxkQ29uZmlnc3tEcm9wZG93bn0sCiAgICAgICAgICAgIFZhbHVlICAgICAgICAgICAgICA9PiAwLAogICAgICAgICAgICBNYW5kYXRvcnkgICAgICAgICAgPT4gMCwKCiAgICAgICAgfSwKICAgICAgICBFeHBlY3RlZFJlc3VsdHMgPT4gewogICAgICAgICAgICBTZXJ2ZXJFcnJvciAgPT4gdW5kZWYsCiAgICAgICAgICAgIEVycm9yTWVzc2FnZSA9PiB1bmRlZiwKICAgICAgICB9LAogICAgfSwKICAgIHsKICAgICAgICBOYW1lICAgPT4gJ0R5bmFtaWNGaWVsZCBEcm9wZG93biBFbXB0eSBNYW5kYXRvcnknLAogICAgICAgIENvbmZpZyA9PiB7CiAgICAgICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyA9PiAkRHluYW1pY0ZpZWxkQ29uZmlnc3tEcm9wZG93bn0sCiAgICAgICAgICAgIFZhbHVlICAgICAgICAgICAgICA9PiAnJywKICAgICAgICAgICAgTWFuZGF0b3J5ICAgICAgICAgID0+IDEsCiAgICAgICAgfSwKICAgICAgICBFeHBlY3RlZFJlc3VsdHMgPT4gewogICAgICAgICAgICBTZXJ2ZXJFcnJvciAgPT4gMSwKICAgICAgICAgICAgRXJyb3JNZXNzYWdlID0+IHVuZGVmLAogICAgICAgIH0sCiAgICB9LAogICAgewogICAgICAgIE5hbWUgICA9PiAnRHluYW1pY0ZpZWxkIERyb3Bkb3duIFdyb25nIFZhbHVlJywKICAgICAgICBDb25maWcgPT4gewogICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgPT4gJER5bmFtaWNGaWVsZENvbmZpZ3N7RHJvcGRvd259LAogICAgICAgICAgICBWYWx1ZSAgICAgICAgICAgICAgPT4gMywKICAgICAgICAgICAgTWFuZGF0b3J5ICAgICAgICAgID0+IDEsCiAgICAgICAgfSwKICAgICAgICBFeHBlY3RlZFJlc3VsdHMgPT4gewogICAgICAgICAgICBTZXJ2ZXJFcnJvciAgPT4gMSwKICAgICAgICAgICAgRXJyb3JNZXNzYWdlID0+ICdUaGUgZmllbGQgY29udGVudCBpcyBpbnZhbGlkJywKICAgICAgICB9LAogICAgfSwKICAgIHsKICAgICAgICBOYW1lICAgPT4gJ0R5bmFtaWNGaWVsZCBNdWx0aXNlbGVjdCcsCiAgICAgICAgQ29uZmlnID0+IHsKICAgICAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnID0+ICREeW5hbWljRmllbGRDb25maWdze011bHRpc2VsZWN0fSwKICAgICAgICAgICAgVmFsdWUgICAgICAgICAgICAgID0+IDEsCiAgICAgICAgICAgIE1hbmRhdG9yeSAgICAgICAgICA9PiAwLAogICAgICAgIH0sCiAgICAgICAgRXhwZWN0ZWRSZXN1bHRzID0+ICcnLAogICAgfSwKICAgIHsKICAgICAgICBOYW1lICAgPT4gJ0R5bmFtaWNGaWVsZCBNdWx0aXNlbGVjdCBFbXB0eScsCiAgICAgICAgQ29uZmlnID0+IHsKICAgICAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnID0+ICREeW5hbWljRmllbGRDb25maWdze011bHRpc2VsZWN0fSwKICAgICAgICAgICAgVmFsdWUgICAgICAgICAgICAgID0+IDAsCiAgICAgICAgICAgIE1hbmRhdG9yeSAgICAgICAgICA9PiAwLAoKICAgICAgICB9LAogICAgICAgIEV4cGVjdGVkUmVzdWx0cyA9PiAnJywKICAgIH0sCiAgICB7CiAgICAgICAgTmFtZSAgID0+ICdEeW5hbWljRmllbGQgTXVsdGlzZWxlY3QgRW1wdHkgTWFuZGF0b3J5JywKICAgICAgICBDb25maWcgPT4gewogICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgPT4gJER5bmFtaWNGaWVsZENvbmZpZ3N7TXVsdGlzZWxlY3R9LAogICAgICAgICAgICBWYWx1ZSAgICAgICAgICAgICAgPT4gJycsCiAgICAgICAgICAgIE1hbmRhdG9yeSAgICAgICAgICA9PiAxLAogICAgICAgIH0sCiAgICAgICAgRXhwZWN0ZWRSZXN1bHRzID0+ICcnLAogICAgfSwKICAgIHsKICAgICAgICBOYW1lICAgPT4gJ0R5bmFtaWNGaWVsZCBEYXRlVGltZScsCiAgICAgICAgQ29uZmlnID0+IHsKICAgICAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnID0+ICREeW5hbWljRmllbGRDb25maWdze0RhdGVUaW1lfSwKICAgICAgICAgICAgVmFsdWUgICAgICAgICAgICAgID0+ICcyMDEzLTA4LTIxIDEzOjQ2OjAwJywKICAgICAgICAgICAgTWFuZGF0b3J5ICAgICAgICAgID0+IDAsCiAgICAgICAgfSwKICAgICAgICBFeHBlY3RlZFJlc3VsdHMgPT4gewogICAgICAgICAgICBTZXJ2ZXJFcnJvciAgPT4gdW5kZWYsCiAgICAgICAgICAgIEVycm9yTWVzc2FnZSA9PiB1bmRlZiwKICAgICAgICB9LAogICAgfSwKICAgIHsKICAgICAgICBOYW1lICAgPT4gJ0R5bmFtaWNGaWVsZCBEYXRlVGltZSBlbXB0eScsCiAgICAgICAgQ29uZmlnID0+IHsKICAgICAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnID0+ICREeW5hbWljRmllbGRDb25maWdze0RhdGVUaW1lfSwKICAgICAgICAgICAgVmFsdWUgICAgICAgICAgICAgID0+ICcnLAogICAgICAgICAgICBNYW5kYXRvcnkgICAgICAgICAgPT4gMCwKICAgICAgICB9LAogICAgICAgIEV4cGVjdGVkUmVzdWx0cyA9PiB7CiAgICAgICAgICAgIFNlcnZlckVycm9yICA9PiB1bmRlZiwKICAgICAgICAgICAgRXJyb3JNZXNzYWdlID0+IHVuZGVmLAogICAgICAgIH0sCiAgICB9LAogICAgewogICAgICAgIE5hbWUgICA9PiAnRHluYW1pY0ZpZWxkIERhdGVUaW1lIEVtcHR5IE1hbmRhdG9yeScsCiAgICAgICAgQ29uZmlnID0+IHsKICAgICAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnID0+ICREeW5hbWljRmllbGRDb25maWdze0RhdGVUaW1lfSwKICAgICAgICAgICAgVmFsdWUgICAgICAgICAgICAgID0+ICcnLAogICAgICAgICAgICBNYW5kYXRvcnkgICAgICAgICAgPT4gMSwKICAgICAgICB9LAogICAgICAgIEV4cGVjdGVkUmVzdWx0cyA9PiB7CiAgICAgICAgICAgIFNlcnZlckVycm9yICA9PiAxLAogICAgICAgICAgICBFcnJvck1lc3NhZ2UgPT4gdW5kZWYsCiAgICAgICAgfSwKICAgIH0sCiAgICB7CiAgICAgICAgTmFtZSAgID0+ICdEeW5hbWljRmllbGQgRGF0ZVRpbWUgV3JvbmcgRm9ybWF0JywKICAgICAgICBDb25maWcgPT4gewogICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgPT4gJER5bmFtaWNGaWVsZENvbmZpZ3N7RGF0ZVRpbWV9LAogICAgICAgICAgICBWYWx1ZSAgICAgICAgICAgICAgPT4gJzIwMTMvMDgvMjEgMTM6NDY6MDAnLAogICAgICAgICAgICBNYW5kYXRvcnkgICAgICAgICAgPT4gMSwKICAgICAgICB9LAogICAgICAgIEV4cGVjdGVkUmVzdWx0cyA9PiB7CiAgICAgICAgICAgIFNlcnZlckVycm9yICA9PiAxLAogICAgICAgICAgICBFcnJvck1lc3NhZ2UgPT4gdW5kZWYsCiAgICAgICAgfSwKICAgIH0sCiAgICB7CiAgICAgICAgTmFtZSAgID0+ICdEeW5hbWljRmllbGQgRGF0ZVRpbWUgV3JvbmcgRGF0ZScsCiAgICAgICAgQ29uZmlnID0+IHsKICAgICAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnID0+ICREeW5hbWljRmllbGRDb25maWdze0RhdGVUaW1lfSwKICAgICAgICAgICAgVmFsdWUgICAgICAgICAgICAgID0+ICcyMDEzLTMxLTIxIDEzOjQ2OjAwJywKICAgICAgICAgICAgTWFuZGF0b3J5ICAgICAgICAgID0+IDEsCiAgICAgICAgfSwKICAgICAgICBFeHBlY3RlZFJlc3VsdHMgPT4gewogICAgICAgICAgICBTZXJ2ZXJFcnJvciAgPT4gMSwKICAgICAgICAgICAgRXJyb3JNZXNzYWdlID0+IHVuZGVmLAogICAgICAgIH0sCiAgICB9LAogICAgewogICAgICAgIE5hbWUgICA9PiAnRHluYW1pY0ZpZWxkIERhdGUnLAogICAgICAgIENvbmZpZyA9PiB7CiAgICAgICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyA9PiAkRHluYW1pY0ZpZWxkQ29uZmlnc3tEYXRlfSwKICAgICAgICAgICAgVmFsdWUgICAgICAgICAgICAgID0+ICcyMDEzLTA4LTIxIDEzOjQ2OjAwJywKICAgICAgICAgICAgTWFuZGF0b3J5ICAgICAgICAgID0+IDAsCiAgICAgICAgfSwKICAgICAgICBFeHBlY3RlZFJlc3VsdHMgPT4gewogICAgICAgICAgICBTZXJ2ZXJFcnJvciAgPT4gdW5kZWYsCiAgICAgICAgICAgIEVycm9yTWVzc2FnZSA9PiB1bmRlZiwKICAgICAgICB9LAogICAgfSwKICAgIHsKICAgICAgICBOYW1lICAgPT4gJ0R5bmFtaWNGaWVsZCBEYXRlIGVtcHR5JywKICAgICAgICBDb25maWcgPT4gewogICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgPT4gJER5bmFtaWNGaWVsZENvbmZpZ3N7RGF0ZX0sCiAgICAgICAgICAgIFZhbHVlICAgICAgICAgICAgICA9PiAnJywKICAgICAgICAgICAgTWFuZGF0b3J5ICAgICAgICAgID0+IDAsCiAgICAgICAgfSwKICAgICAgICBFeHBlY3RlZFJlc3VsdHMgPT4gewogICAgICAgICAgICBTZXJ2ZXJFcnJvciAgPT4gdW5kZWYsCiAgICAgICAgICAgIEVycm9yTWVzc2FnZSA9PiB1bmRlZiwKICAgICAgICB9LAogICAgfSwKICAgIHsKICAgICAgICBOYW1lICAgPT4gJ0R5bmFtaWNGaWVsZCBEYXRlIEVtcHR5IE1hbmRhdG9yeScsCiAgICAgICAgQ29uZmlnID0+IHsKICAgICAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnID0+ICREeW5hbWljRmllbGRDb25maWdze0RhdGV9LAogICAgICAgICAgICBWYWx1ZSAgICAgICAgICAgICAgPT4gJycsCiAgICAgICAgICAgIE1hbmRhdG9yeSAgICAgICAgICA9PiAxLAogICAgICAgIH0sCiAgICAgICAgRXhwZWN0ZWRSZXN1bHRzID0+IHsKICAgICAgICAgICAgU2VydmVyRXJyb3IgID0+IDEsCiAgICAgICAgICAgIEVycm9yTWVzc2FnZSA9PiB1bmRlZiwKICAgICAgICB9LAogICAgfSwKICAgIHsKICAgICAgICBOYW1lICAgPT4gJ0R5bmFtaWNGaWVsZCBEYXRlIFdyb25nIEZvcm1hdCcsCiAgICAgICAgQ29uZmlnID0+IHsKICAgICAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnID0+ICREeW5hbWljRmllbGRDb25maWdze0RhdGV9LAogICAgICAgICAgICBWYWx1ZSAgICAgICAgICAgICAgPT4gJzIwMTMvMDgvMjEgMTM6NDY6MDAnLAogICAgICAgICAgICBNYW5kYXRvcnkgICAgICAgICAgPT4gMSwKICAgICAgICB9LAogICAgICAgIEV4cGVjdGVkUmVzdWx0cyA9PiB7CiAgICAgICAgICAgIFNlcnZlckVycm9yICA9PiAxLAogICAgICAgICAgICBFcnJvck1lc3NhZ2UgPT4gdW5kZWYsCiAgICAgICAgfSwKICAgIH0sCiAgICB7CiAgICAgICAgTmFtZSAgID0+ICdEeW5hbWljRmllbGQgRGF0ZSBXcm9uZyBEYXRlJywKICAgICAgICBDb25maWcgPT4gewogICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgPT4gJER5bmFtaWNGaWVsZENvbmZpZ3N7RGF0ZX0sCiAgICAgICAgICAgIFZhbHVlICAgICAgICAgICAgICA9PiAnMjAxMy0zMS0yMSAxMzo0NjowMCcsCiAgICAgICAgICAgIE1hbmRhdG9yeSAgICAgICAgICA9PiAxLAogICAgICAgIH0sCiAgICAgICAgRXhwZWN0ZWRSZXN1bHRzID0+IHsKICAgICAgICAgICAgU2VydmVyRXJyb3IgID0+IDEsCiAgICAgICAgICAgIEVycm9yTWVzc2FnZSA9PiB1bmRlZiwKICAgICAgICB9LAogICAgfSwKCik7CgojIGV4ZWN1dGUgdGVzdHMKZm9yIG15ICRUZXN0IChAVGVzdHMpIHsKCiAgICAjIGNhbGwgSVBob25lRmllbGRWYWx1ZVZhbGlkYXRlCiAgICBteSAkUmVzdWx0ID0gJERGQmFja2VuZE9iamVjdC0+SVBob25lRmllbGRWYWx1ZVZhbGlkYXRlKCAleyAkVGVzdC0+e0NvbmZpZ30gfSApOwoKICAgIGlmICggSXNIYXNoUmVmV2l0aERhdGEoICRUZXN0LT57RXhwZWN0ZWRSZXN1bHRzfSApICkgewogICAgICAgICRTZWxmLT5Jc0RlZXBseSgKICAgICAgICAgICAgJFJlc3VsdCwKICAgICAgICAgICAgJFRlc3QtPntFeHBlY3RlZFJlc3VsdHN9LAogICAgICAgICAgICAiJFRlc3QtPntOYW1lfSBJUGhvbmVGaWVsZFZhbHVlVmFsaWRhdGUoKSA6IgogICAgICAgICk7CiAgICB9CiAgICBlbHNlIHsKICAgICAgICAkU2VsZi0+SXMoCiAgICAgICAgICAgICRSZXN1bHQsCiAgICAgICAgICAgIHVuZGVmLAogICAgICAgICAgICAiJFRlc3QtPntOYW1lfSBJUGhvbmVGaWVsZFZhbHVlVmFsaWRhdGUoKSA6IgogICAgICAgICk7CiAgICB9Cn0KCiMgd2UgZG9uJ3QgbmVlZCBhbnkgY2xlYW51cAoxOwo=
IyAtLQojIGlQaG9uZUhhbmRsZS5wbSAtIGNvZGUgdG8gZXhjZWN1dGUgZHVyaW5nIHBhY2thZ2UgaW5zdGFsbGF0aW9uCiMgQ29weXJpZ2h0IChDKSAyMDAxLTIwMTMgT1RSUyBBRywgaHR0cDovL290cnMuY29tLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChBR1BMKS4gSWYgeW91CiMgZGlkIG5vdCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9hZ3BsLnR4dC4KIyAtLQoKcGFja2FnZSB2YXI6OnBhY2thZ2VzZXR1cDo6aVBob25lSGFuZGxlOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwoKdXNlIEtlcm5lbDo6Q29uZmlnOwp1c2UgS2VybmVsOjpTeXN0ZW06OlN5c0NvbmZpZzsKdXNlIEtlcm5lbDo6U3lzdGVtOjpQYWNrYWdlOwp1c2UgS2VybmVsOjpTeXN0ZW06OlZhcmlhYmxlQ2hlY2sgcXcoOmFsbCk7Cgo9aGVhZDEgTkFNRQoKaVBob25lSGFuZGxlLnBtIC0gY29kZSB0byBleGNlY3V0ZSBkdXJpbmcgcGFja2FnZSBpbnN0YWxsYXRpb24KCj1oZWFkMSBTWU5PUFNJUwoKQWxsIGZ1bmN0aW9ucwoKPWhlYWQxIFBVQkxJQyBJTlRFUkZBQ0UKCj1vdmVyIDQKCj1jdXQKCj1pdGVtIG5ldygpCgpjcmVhdGUgYW4gb2JqZWN0CgogICAgdXNlIEtlcm5lbDo6Q29uZmlnOwogICAgdXNlIEtlcm5lbDo6U3lzdGVtOjpMb2c7CiAgICB1c2UgS2VybmVsOjpTeXN0ZW06Ok1haW47CiAgICB1c2UgS2VybmVsOjpTeXN0ZW06OlRpbWU7CiAgICB1c2UgS2VybmVsOjpTeXN0ZW06OkRCOwogICAgdXNlIEtlcm5lbDo6U3lzdGVtOjpYTUw7CiAgICB1c2UgdmFyOjpwYWNrYWdlc2V0dXA6OmlQaG9uZTsKCiAgICBteSAkQ29uZmlnT2JqZWN0ID0gS2VybmVsOjpDb25maWctPm5ldygpOwogICAgbXkgJExvZ09iamVjdCAgICA9IEtlcm5lbDo6U3lzdGVtOjpMb2ctPm5ldygKICAgICAgICBDb25maWdPYmplY3QgPT4gJENvbmZpZ09iamVjdCwKICAgICk7CiAgICBteSAkTWFpbk9iamVjdCA9IEtlcm5lbDo6U3lzdGVtOjpNYWluLT5uZXcoCiAgICAgICAgQ29uZmlnT2JqZWN0ID0+ICRDb25maWdPYmplY3QsCiAgICAgICAgTG9nT2JqZWN0ICAgID0+ICRMb2dPYmplY3QsCiAgICApOwogICAgbXkgJFRpbWVPYmplY3QgPSBLZXJuZWw6OlN5c3RlbTo6VGltZS0+bmV3KAogICAgICAgIENvbmZpZ09iamVjdCA9PiAkQ29uZmlnT2JqZWN0LAogICAgICAgIExvZ09iamVjdCAgICA9PiAkTG9nT2JqZWN0LAogICAgKTsKICAgIG15ICREQk9iamVjdCA9IEtlcm5lbDo6U3lzdGVtOjpEQi0+bmV3KAogICAgICAgIENvbmZpZ09iamVjdCA9PiAkQ29uZmlnT2JqZWN0LAogICAgICAgIExvZ09iamVjdCAgICA9PiAkTG9nT2JqZWN0LAogICAgICAgIE1haW5PYmplY3QgICA9PiAkTWFpbk9iamVjdCwKICAgICk7CiAgICBteSAkWE1MT2JqZWN0ID0gS2VybmVsOjpTeXN0ZW06OlhNTC0+bmV3KAogICAgICAgIENvbmZpZ09iamVjdCA9PiAkQ29uZmlnT2JqZWN0LAogICAgICAgIExvZ09iamVjdCAgICA9PiAkTG9nT2JqZWN0LAogICAgICAgIERCT2JqZWN0ICAgICA9PiAkREJPYmplY3QsCiAgICAgICAgTWFpbk9iamVjdCAgID0+ICRNYWluT2JqZWN0LAogICAgKTsKICAgIG15ICRDb2RlT2JqZWN0ID0gdmFyOjpwYWNrYWdlc2V0dXA6OmlQaG9uZS0+bmV3KAogICAgICAgIENvbmZpZ09iamVjdCA9PiAkQ29uZmlnT2JqZWN0LAogICAgICAgIExvZ09iamVjdCAgICA9PiAkTG9nT2JqZWN0LAogICAgICAgIE1haW5PYmplY3QgICA9PiAkTWFpbk9iamVjdCwKICAgICAgICBUaW1lT2JqZWN0ICAgPT4gJFRpbWVPYmplY3QsCiAgICAgICAgREJPYmplY3QgICAgID0+ICREQk9iamVjdCwKICAgICAgICBYTUxPYmplY3QgICAgPT4gJFhNTE9iamVjdCwKICAgICk7Cgo9Y3V0CgpzdWIgbmV3IHsKICAgIG15ICggJFR5cGUsICVQYXJhbSApID0gQF87CgogICAgIyBhbGxvY2F0ZSBuZXcgaGFzaCBmb3Igb2JqZWN0CiAgICBteSAkU2VsZiA9IHt9OwogICAgYmxlc3MoICRTZWxmLCAkVHlwZSApOwoKICAgICMgY2hlY2sgbmVlZGVkIG9iamVjdHMKICAgIGZvciBteSAkT2JqZWN0ICgKICAgICAgICBxdyhDb25maWdPYmplY3QgTG9nT2JqZWN0IE1haW5PYmplY3QgVGltZU9iamVjdCBEQk9iamVjdCBYTUxPYmplY3QgRW5jb2RlT2JqZWN0KQogICAgICAgICkKICAgIHsKICAgICAgICAkU2VsZi0+eyRPYmplY3R9ID0gJFBhcmFteyRPYmplY3R9IHx8IGRpZSAiR290IG5vICRPYmplY3QhIjsKICAgIH0KCiAgICAjIGNyZWF0ZSBuZWVkZWQgc3lzY29uZmlnIG9iamVjdAogICAgJFNlbGYtPntTeXNDb25maWdPYmplY3R9ID0gS2VybmVsOjpTeXN0ZW06OlN5c0NvbmZpZy0+bmV3KCAleyRTZWxmfSApOwoKICAgICMgcmVidWlsZCBaWloqIGZpbGVzCiAgICAkU2VsZi0+e1N5c0NvbmZpZ09iamVjdH0tPldyaXRlRGVmYXVsdCgpOwoKICAgICMgZGVmaW5lIHRoZSBaWlogZmlsZXMKICAgIG15IEBaWlpGaWxlcyA9ICgKICAgICAgICAnWlpaQUF1dG8ucG0nLAogICAgICAgICdaWlpBdXRvLnBtJywKICAgICk7CgogICAgIyByZWxvYWQgdGhlIFpaWiBmaWxlcyAobW9kX3Blcmwgd29ya2Fyb3VuZCkKICAgIGZvciBteSAkWlpaRmlsZSAoQFpaWkZpbGVzKSB7CgogICAgICAgIFBSRUZJWDoKICAgICAgICBmb3IgbXkgJFByZWZpeCAoQElOQykgewogICAgICAgICAgICBteSAkRmlsZSA9ICRQcmVmaXggLiAnL0tlcm5lbC9Db25maWcvRmlsZXMvJyAuICRaWlpGaWxlOwogICAgICAgICAgICBuZXh0IFBSRUZJWCBpZiAhLWYgJEZpbGU7CiAgICAgICAgICAgIGRvICRGaWxlOwogICAgICAgICAgICBsYXN0IFBSRUZJWDsKICAgICAgICB9CiAgICB9CgogICAgIyBjcmVhdGUgbmVlZGVkIG9iamVjdHMKICAgICRTZWxmLT57Q29uZmlnT2JqZWN0fSAgPSBLZXJuZWw6OkNvbmZpZy0+bmV3KCk7CiAgICAkU2VsZi0+e1BhY2thZ2VPYmplY3R9ID0gS2VybmVsOjpTeXN0ZW06OlBhY2thZ2UtPm5ldyglUGFyYW0pOwoKICAgIHJldHVybiAkU2VsZjsKfQoKPWl0ZW0gQ29kZUluc3RhbGwoKQoKcnVuIHRoZSBjb2RlIGluc3RhbGwgcGFydAoKICAgIG15ICRSZXN1bHQgPSAkQ29kZU9iamVjdC0+Q29kZUluc3RhbGwoKTsKCj1jdXQKCnN1YiBDb2RlSW5zdGFsbCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICRTZWxmLT5fVXBkYXRlUmVsZWFzZUZpbGUoKTsKCiAgICByZXR1cm4gMTsKfQoKPWl0ZW0gQ29kZVJlaW5zdGFsbCgpCgpydW4gdGhlIGNvZGUgcmVpbnN0YWxsIHBhcnQKCiAgICBteSAkUmVzdWx0ID0gJENvZGVPYmplY3QtPkNvZGVSZWluc3RhbGwoKTsKCj1jdXQKCnN1YiBDb2RlUmVpbnN0YWxsIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgJFNlbGYtPl9VcGRhdGVSZWxlYXNlRmlsZSgpOwogICAgJFNlbGYtPl9NaWdyYXRlQ29uZmlndXJhdGlvbnMoKTsKCiAgICByZXR1cm4gMTsKfQoKPWl0ZW0gQ29kZVVwZ3JhZGUoKQoKcnVuIHRoZSBjb2RlIHVwZ3JhZGUgcGFydAoKICAgIG15ICRSZXN1bHQgPSAkQ29kZU9iamVjdC0+Q29kZVVwZ3JhZGUoKTsKCj1jdXQKCnN1YiBDb2RlVXBncmFkZSB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICRTZWxmLT5fVXBkYXRlUmVsZWFzZUZpbGUoKTsKICAgICRTZWxmLT5fTWlncmF0ZUNvbmZpZ3VyYXRpb25zKCk7CgogICAgcmV0dXJuIDE7Cn0KCj1pdGVtIENvZGVVbmluc3RhbGwoKQoKcnVuIHRoZSBjb2RlIHVuaW5zdGFsbCBwYXJ0CgogICAgbXkgJFJlc3VsdCA9ICRDb2RlT2JqZWN0LT5Db2RlVW5pbnN0YWxsKCk7Cgo9Y3V0CgpzdWIgQ29kZVVuaW5zdGFsbCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICRTZWxmLT5fUmVtb3ZlUmVsZWFzZUZpbGUoKTsKCiAgICByZXR1cm4gMTsKfQoKPWl0ZW0gX1VwZGF0ZVJlbGVhc2VGaWxlKCkKCmNyZWF0ZXMgb3IgdXBkYXRlcyBSRUxFQVNFLmlQaG9uZUhhbmRsZSBmaWxlCgogICAgbXkgJFJlc3VsdCA9ICRDb2RlT2JqZWN0LT5fVXBkYXRlUmVsZWFzZUZpbGUoKTsKCj1jdXQKCnN1YiBfVXBkYXRlUmVsZWFzZUZpbGUgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAkUGFja2FnZVZlcnNpb247CgogICAgIyBnZXQgdGhlIGluc3RhbGxlZCB2ZXJzaW9uIG9mIGlQaG9uZUhhbmRsZSBwYWNrYWdlCiAgICBQQUNLQUdFOgogICAgZm9yIG15ICRQYWNrYWdlICggJFNlbGYtPntQYWNrYWdlT2JqZWN0fS0+UmVwb3NpdG9yeUxpc3QoKSApIHsKICAgICAgICBpZiAoICRQYWNrYWdlLT57TmFtZX0tPntDb250ZW50fSBlcSAnaVBob25lSGFuZGxlJyApIHsKICAgICAgICAgICAgJFBhY2thZ2VWZXJzaW9uID0gJFBhY2thZ2UtPntWZXJzaW9ufS0+e0NvbnRlbnR9LAogICAgICAgICAgICAgICAgbGFzdCBQQUNLQUdFOwogICAgICAgIH0KICAgIH0KCiAgICAjIGlmIG5vIGlQaG9uZUhhbmRsZSBwYWNrYWdlIGZvdW5kIGFuZCB0aGUgY29kZSBpbnN0YWxsIGlzIGV4ZWN1dGVkIHRoaXMgbXVzdCBiZSBhCiAgICAjIGRldmVsb3BtZW50IHNjZW5hcmlvCiAgICBpZiAoICEkUGFja2FnZVZlcnNpb24gKSB7CiAgICAgICAgJFBhY2thZ2VWZXJzaW9uID0gJ2dpdCc7CiAgICB9CgogICAgIyBnZXQgaG9tZSBwYXRoCiAgICBteSAkSG9tZSA9ICRTZWxmLT57Q29uZmlnT2JqZWN0fS0+R2V0KCdIb21lJyk7CgogICAgIyBjcmVhdGUgb3Igb3ZlcndyaXRlIFJFTEVBU0UuaVBob25lSGFuZGxlIGZpbGUKICAgIG15ICRDb250ZW50ICAgICAgPSAiUFJPRFVDVCA9IGlQaG9uZUhhbmRsZVxuVkVSU0lPTiA9ICRQYWNrYWdlVmVyc2lvbiI7CiAgICBteSAkRmlsZUxvY2F0aW9uID0gJFNlbGYtPntNYWluT2JqZWN0fS0+RmlsZVdyaXRlKAogICAgICAgIExvY2F0aW9uID0+ICIkSG9tZS92YXIvUkVMRUFTRS5pUGhvbmVIYW5kbGUiLAogICAgICAgIENvbnRlbnQgID0+IFwkQ29udGVudCwKICAgICk7CgogICAgaWYgKCAhJEZpbGVMb2NhdGlvbiApIHsKICAgICAgICAkU2VsZi0+e0xvZ09iamVjdH0tPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gIkVSUk9SOiBDYW4ndCB3cml0ZSAkSG9tZS92YXIvUkVMRUFTRS5pUGhvbmVIYW5kbGUhLlxuIiwKICAgICAgICApOwogICAgICAgIHJldHVybiAtMTsKICAgIH0KCiAgICAjIGNoZWNrIFJFTEVBU0UgZmlsZQogICAgaWYgKCAhLWUgIiRIb21lL3Zhci9SRUxFQVNFLmlQaG9uZUhhbmRsZSIgKSB7CiAgICAgICAgJFNlbGYtPntMb2dPYmplY3R9LT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJGaWxlICRIb21lL3Zhci9SRUxFQVNFLmlQaG9uZUhhbmRsZSB3YXMgbm90IGNyZWF0ZWQhLlxuIiwKICAgICAgICApOwogICAgfQoKICAgIHJldHVybiAxOwp9Cgo9aXRlbSBfUmVtb3ZlUmVsZWFzZUZpbGUoKQoKcmVtb3ZlcyBSRUxFQVNFLmlQaG9uZUhhbmRsZSBmaWxlIGZyb20gdGhlIGZpbGUgc3lzdGVtCgogICAgbXkgJFJlc3VsdCA9ICRDb2RlT2JqZWN0LT5fUmVtb3ZlUmVsZWFzZUZpbGUoKTsKCj1jdXQKCnN1YiBfUmVtb3ZlUmVsZWFzZUZpbGUgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGdldCBob21lIHBhdGgKICAgIG15ICRIb21lID0gJFNlbGYtPntDb25maWdPYmplY3R9LT5HZXQoJ0hvbWUnKTsKCiAgICAjIGRlbGV0ZSBSRUxFQVNFIGZpbGUKICAgIGlmICggLWUgIiRIb21lL3Zhci9SRUxFQVNFLmlQaG9uZUhhbmRsZSIgKSB7CiAgICAgICAgaWYgKCAhdW5saW5rICIkSG9tZS92YXIvUkVMRUFTRS5pUGhvbmVIYW5kbGUiICkgewogICAgICAgICAgICAkU2VsZi0+e0xvZ09iamVjdH0tPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiRmlsZSAkSG9tZS92YXIvUkVMRUFTRS5pUGhvbmVIYW5kbGUgY291bGQgbm90IGJlIGRlbGV0ZWQhLlxuIiwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIC0xOwogICAgfQogICAgZWxzZSB7CiAgICAgICAgJFNlbGYtPntMb2dPYmplY3R9LT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdub3RpY2UnLAogICAgICAgICAgICBNZXNzYWdlICA9PiAiRmlsZSAkSG9tZS92YXIvUkVMRUFTRS5pUGhvbmVIYW5kbGUgd2FzIGFscmVhZHkgZGVsZXRlZCEuXG4iLAogICAgICAgICk7CiAgICB9CiAgICByZXR1cm4gMTsKfQoKPWl0ZW0gX01pZ3JhdGVDb25maWd1cmF0aW9ucygpCgptaWdyYXRlcyBvbGQgVGlja2V0RnJlZVRleHQsIFRpY2tldEZyZWVUaW1lIGFuZCBBcnRpY2xlRnJlZVRleHQgY29uZmlndXJhdGlvbnMgdG8gbmV3IER5bmFtaWMKRmllbGRzIENvbmZpZ3VyYXRpb25zCgogICAgbXkgJFJlc3VsdCA9ICRDb2RlT2JqZWN0LT5fTWlncmF0ZUNvbmZpZ3VyYXRpb25zKCk7Cgo9Y3V0CgpzdWIgX01pZ3JhdGVDb25maWd1cmF0aW9ucyB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15IEBTY3JlZW5zID0gKAogICAgICAgICdpUGhvbmU6OkZyb250ZW5kOjpBZ2VudFRpY2tldFBob25lJywKICAgICAgICAnaVBob25lOjpGcm9udGVuZDo6QWdlbnRUaWNrZXROb3RlJywKICAgICAgICAnaVBob25lOjpGcm9udGVuZDo6QWdlbnRUaWNrZXRDbG9zZScsCiAgICAgICAgJ2lQaG9uZTo6RnJvbnRlbmQ6OkFnZW50VGlja2V0Q29tcG9zZScsCiAgICAgICAgJ2lQaG9uZTo6RnJvbnRlbmQ6OkFnZW50VGlja2V0TW92ZScsCiAgICApOwoKICAgIG15IEBGcmVlRmllbGRUeXBlcyA9ICgKICAgICAgICAnVGlja2V0RnJlZVRleHQnLAogICAgICAgICdUaWNrZXRGcmVlVGltZScsCiAgICAgICAgJ0FydGljbGVGcmVlVGV4dCcsCiAgICApOwoKICAgIFNDUkVFTjoKICAgIGZvciBteSAkU2NyZWVuIChAU2NyZWVucykgewoKICAgICAgICBteSAkU2NyZWVuQ29uZmlnID0gJFNlbGYtPntDb25maWdPYmplY3R9LT5HZXQoJFNjcmVlbik7CgogICAgICAgICMgc2tpcCBzY3JlZW4gaWYgRHluYW1pYyBGaWVsZHMgYXJlIGFscmVhZHkgZGVmaW5lZAogICAgICAgIG5leHQgU0NSRUVOIGlmIElzSGFzaFJlZldpdGhEYXRhKCAkU2NyZWVuQ29uZmlnLT57RHluYW1pY0ZpZWxkfSApOwoKICAgICAgICBteSAlRmllbGRzVG9BZGQ7CgogICAgICAgICMgZ2F0aGVyIGFsbCBmcmVlIGZpZWxkcyBmb3IgdGhpcyBzY3JlZW4KICAgICAgICBmb3IgbXkgJEZyZWVGaWVsZFR5cGUgKEBGcmVlRmllbGRUeXBlcykgewoKICAgICAgICAgICAgIyBjaGVjayBpZiBGcmVlRmllbGRUeXBlIGNvbmZpZ3VyYXRpb24gaXMgc2V0IGFuZCBnZXQgdGhlIGNvbmZpZ3VyZWQgZmllbGRzCiAgICAgICAgICAgIGlmICggSXNIYXNoUmVmV2l0aERhdGEoICRTY3JlZW5Db25maWctPnskRnJlZUZpZWxkVHlwZX0gKSApIHsKCiAgICAgICAgICAgICAgICBGUkVFRklFTEQ6CiAgICAgICAgICAgICAgICBmb3IgbXkgJEZyZWVGaWVsZCAoIHNvcnQga2V5cyAleyAkU2NyZWVuQ29uZmlnLT57JEZyZWVGaWVsZFR5cGV9IH0gKSB7CgogICAgICAgICAgICAgICAgICAgICMgc2tpcCB0aGUgRnJlZUZpZWxkcyB0aGF0IGFyZSBzZXQgdG8gMAogICAgICAgICAgICAgICAgICAgIG5leHQgRlJFRUZJRUxEIGlmICEkU2NyZWVuQ29uZmlnLT57JEZyZWVGaWVsZFR5cGV9LT57JEZyZWVGaWVsZH07CgogICAgICAgICAgICAgICAgICAgICMgYWRkIGZpZWxkIHNldHRpbmcgKDEgb3IgMikgdG8gdGhlIEZpZWxkc1RvQWRkIGhhc2gKICAgICAgICAgICAgICAgICAgICAkRmllbGRzVG9BZGR7ICRGcmVlRmllbGRUeXBlIC4gJEZyZWVGaWVsZCB9CiAgICAgICAgICAgICAgICAgICAgICAgID0gJFNjcmVlbkNvbmZpZy0+eyRGcmVlRmllbGRUeXBlfS0+eyRGcmVlRmllbGR9OwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAjIHVwZGF0ZSBEeW5hbWljRmllbGQgY29uZmlndXJhdGlvbiBmb3IgdGhlIHNjcmVlbiBhbmQgYWRkIHRoZSBjb25maWd1cmVkIEZyZWVGaWVsZHMKICAgICAgICBpZiAoIElzSGFzaFJlZldpdGhEYXRhKCBcJUZpZWxkc1RvQWRkICkgKSB7CiAgICAgICAgICAgIG15ICRTdWNjZXNzID0gJFNlbGYtPntTeXNDb25maWdPYmplY3R9LT5Db25maWdJdGVtVXBkYXRlKAogICAgICAgICAgICAgICAgVmFsaWQgPT4gMSwKICAgICAgICAgICAgICAgIEtleSAgID0+ICRTY3JlZW4gLiAnIyMjRHluYW1pY0ZpZWxkJywKICAgICAgICAgICAgICAgIFZhbHVlID0+IFwlRmllbGRzVG9BZGQsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICBpZiAoICEkU3VjY2VzcyApIHsKICAgICAgICAgICAgICAgICRTZWxmLT57TG9nT2JqZWN0fS0+TG9nKAogICAgICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIkNhbid0IHVwZGF0ZSBEeW5hbWljRmllbGQgY29uZmlndXJhdGlvbiBmb3IgJFNjcmVlbiEuXG4iLAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIHJldHVybiAtMTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KICAgIHJldHVybiAxCn0KCjE7Cgo9YmFjawoKPWhlYWQxIFRFUk1TIEFORCBDT05ESVRJT05TCgpUaGlzIHNvZnR3YXJlIGlzIHBhcnQgb2YgdGhlIE9UUlMgcHJvamVjdCAoTDxodHRwOi8vb3Rycy5vcmcvPikuCgpUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQp0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChBR1BMKS4gSWYgeW91CmRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBMPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9hZ3BsLnR4dD4uCgo9Y3V0Cg==
IyAtLQojIEtlcm5lbC9TeXN0ZW0vaVBob25lLnBtIC0gYWxsIGlQaG9uZSBoYW5kbGUgZnVuY3Rpb25zCiMgQ29weXJpZ2h0IChDKSAyMDAxLTIwMTMgT1RSUyBBRywgaHR0cDovL290cnMuY29tLwojIC0tCiMgVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKIyB0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChBR1BMKS4gSWYgeW91CiMgZGlkIG5vdCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9hZ3BsLnR4dC4KIyAtLQoKcGFja2FnZSBLZXJuZWw6OlN5c3RlbTo6aVBob25lOwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwoKdXNlIEtlcm5lbDo6TGFuZ3VhZ2U7CnVzZSBLZXJuZWw6OlN5c3RlbTo6Q2hlY2tJdGVtOwp1c2UgS2VybmVsOjpTeXN0ZW06OlByaW9yaXR5Owp1c2UgS2VybmVsOjpTeXN0ZW06OlN5c3RlbUFkZHJlc3M7CnVzZSBLZXJuZWw6OlN5c3RlbTo6RHluYW1pY0ZpZWxkOwp1c2UgS2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZDo6QmFja2VuZDsKdXNlIEtlcm5lbDo6U3lzdGVtOjpWYXJpYWJsZUNoZWNrIHF3KDphbGwpOwoKPWhlYWQxIE5BTUUKCktlcm5lbDo6U3lzdGVtOjppUGhvbmUgLSBpUGhvbmUgbGliCgo9aGVhZDEgU1lOT1BTSVMKCkFsbCBpUGhvbmUgZnVuY3Rpb25zLgoKPWhlYWQxIFBVQkxJQyBJTlRFUkZBQ0UKCj1vdmVyIDQKCj1jdXQKCj1pdGVtIG5ldygpCgpjcmVhdGUgYW4gb2JqZWN0CgogICAgdXNlIEtlcm5lbDo6Q29uZmlnOwogICAgdXNlIEtlcm5lbDo6U3lzdGVtOjpFbmNvZGU7CiAgICB1c2UgS2VybmVsOjpTeXN0ZW06OkxvZzsKICAgIHVzZSBLZXJuZWw6OlN5c3RlbTo6VGltZTsKICAgIHVzZSBLZXJuZWw6OlN5c3RlbTo6TWFpbjsKICAgIHVzZSBLZXJuZWw6OlN5c3RlbTo6REI7CiAgICB1c2UgS2VybmVsOjpTeXN0ZW06OlVzZXI7CiAgICB1c2UgS2VybmVsOjpTeXN0ZW06Okdyb3VwOwogICAgdXNlIEtlcm5lbDo6U3lzdGVtOjpRdWV1ZTsKICAgIHVzZSBLZXJuZWw6OlN5c3RlbTo6U2VydmljZTsKICAgIHVzZSBLZXJuZWw6OlN5c3RlbTo6VHlwZTsKICAgIHVzZSBLZXJuZWw6OlN5c3RlbTo6U3RhdGU7CiAgICB1c2UgS2VybmVsOjpTeXN0ZW06OkxvY2s7CiAgICB1c2UgS2VybmVsOjpTeXN0ZW06OlNMQTsKICAgIHVzZSBLZXJuZWw6OlN5c3RlbTo6Q3VzdG9tZXJVc2VyOwogICAgdXNlIEtlcm5lbDo6U3lzdGVtOjpUaWNrZXQ7CiAgICB1c2UgS2VybmVsOjpTeXN0ZW06OkxpbmtPYmplY3Q7CiAgICB1c2UgS2VybmVsOjpTeXN0ZW06OmlQaG9uZTsKCiAgICBteSAkQ29uZmlnT2JqZWN0ID0gS2VybmVsOjpDb25maWctPm5ldygpOwogICAgbXkgJEVuY29kZU9iamVjdCA9IEtlcm5lbDo6U3lzdGVtOjpFbmNvZGUtPm5ldygKICAgICAgICBDb25maWdPYmplY3QgPT4gJENvbmZpZ09iamVjdCwKICAgICk7CiAgICBteSAkTG9nT2JqZWN0ID0gS2VybmVsOjpTeXN0ZW06OkxvZy0+bmV3KAogICAgICAgIENvbmZpZ09iamVjdCA9PiAkQ29uZmlnT2JqZWN0LAogICAgICAgIEVuY29kZU9iamVjdCA9PiAkRW5jb2RlT2JqZWN0LAogICAgKTsKICAgIG15ICRUaW1lT2JqZWN0ID0gS2VybmVsOjpTeXN0ZW06OlRpbWUtPm5ldygKICAgICAgICBDb25maWdPYmplY3QgPT4gJENvbmZpZ09iamVjdCwKICAgICAgICBMb2dPYmplY3QgICAgPT4gJExvZ09iamVjdCwKICAgICk7CiAgICBteSAkTWFpbk9iamVjdCA9IEtlcm5lbDo6U3lzdGVtOjpNYWluLT5uZXcoCiAgICAgICAgQ29uZmlnT2JqZWN0ID0+ICRDb25maWdPYmplY3QsCiAgICAgICAgRW5jb2RlT2JqZWN0ID0+ICRFbmNvZGVPYmplY3QsCiAgICAgICAgTG9nT2JqZWN0ICAgID0+ICRMb2dPYmplY3QsCiAgICApOwogICAgbXkgJERCT2JqZWN0ID0gS2VybmVsOjpTeXN0ZW06OkRCLT5uZXcoCiAgICAgICAgQ29uZmlnT2JqZWN0ID0+ICRDb25maWdPYmplY3QsCiAgICAgICAgRW5jb2RlT2JqZWN0ID0+ICRFbmNvZGVPYmplY3QsCiAgICAgICAgTG9nT2JqZWN0ICAgID0+ICRMb2dPYmplY3QsCiAgICAgICAgTWFpbk9iamVjdCAgID0+ICRNYWluT2JqZWN0LAogICAgKTsKICAgIG15ICRVc2VyT2JqZWN0ID0gS2VybmVsOjpTeXN0ZW06OlVzZXItPm5ldygKICAgICAgICBDb25maWdPYmplY3QgPT4gJENvbmZpZ09iamVjdCwKICAgICAgICBMb2dPYmplY3QgICAgPT4gJExvZ09iamVjdCwKICAgICAgICBNYWluT2JqZWN0ICAgPT4gJE1haW5PYmplY3QsCiAgICAgICAgVGltZU9iamVjdCAgID0+ICRUaW1lT2JqZWN0LAogICAgICAgIERCT2JqZWN0ICAgICA9PiAkREJPYmplY3QsCiAgICAgICAgRW5jb2RlT2JqZWN0ID0+ICRFbmNvZGVPYmplY3QsCiAgICApOwogICAgbXkgJEdyb3VwT2JqZWN0ID0gS2VybmVsOjpTeXN0ZW06Okdyb3VwLT5uZXcoCiAgICAgICAgQ29uZmlnT2JqZWN0ID0+ICRDb25maWdPYmplY3QsCiAgICAgICAgTG9nT2JqZWN0ICAgID0+ICRMb2dPYmplY3QsCiAgICAgICAgREJPYmplY3QgICAgID0+ICREQk9iamVjdCwKICAgICAgICBNYWluT2JqZWN0ICAgPT4gJE1haW5PYmplY3QsCiAgICAgICAgRW5jb2RlT2JqZWN0ID0+ICRFbmNvZGVPYmplY3QsCiAgICApOwogICAgbXkgJFF1ZXVlT2JqZWN0ID0gS2VybmVsOjpTeXN0ZW06OlF1ZXVlLT5uZXcoCiAgICAgICAgQ29uZmlnT2JqZWN0ICAgICAgICA9PiAkQ29uZmlnT2JqZWN0LAogICAgICAgIExvZ09iamVjdCAgICAgICAgICAgPT4gJExvZ09iamVjdCwKICAgICAgICBEQk9iamVjdCAgICAgICAgICAgID0+ICREQk9iamVjdCwKICAgICAgICBNYWluT2JqZWN0ICAgICAgICAgID0+ICRNYWluT2JqZWN0LAogICAgICAgIEVuY29kZU9iamVjdCAgICAgICAgPT4gJEVuY29kZU9iamVjdCwKICAgICAgICBHcm91cE9iamVjdCAgICAgICAgID0+ICRHcm91cE9iamVjdCwgIyBpZiBnaXZlbgogICAgICAgIEN1c3RvbWVyR3JvdXBPYmplY3QgPT4gJEN1c3RvbWVyR3JvdXBPYmplY3QsICMgaWYgZ2l2ZW4KICAgICk7CiAgICBteSAkU2VydmljZU9iamVjdCA9IEtlcm5lbDo6U3lzdGVtOjpTZXJ2aWNlLT5uZXcoCiAgICAgICAgQ29uZmlnT2JqZWN0ID0+ICRDb25maWdPYmplY3QsCiAgICAgICAgRW5jb2RlT2JqZWN0ID0+ICRFbmNvZGVPYmplY3QsCiAgICAgICAgTG9nT2JqZWN0ICAgID0+ICRMb2dPYmplY3QsCiAgICAgICAgREJPYmplY3QgICAgID0+ICREQk9iamVjdCwKICAgICAgICBNYWluT2JqZWN0ICAgPT4gJE1haW5PYmplY3QsCiAgICApOwogICAgbXkgJFR5cGVPYmplY3QgPSBLZXJuZWw6OlN5c3RlbTo6VHlwZS0+bmV3KAogICAgICAgIENvbmZpZ09iamVjdCA9PiAkQ29uZmlnT2JqZWN0LAogICAgICAgIExvZ09iamVjdCAgICA9PiAkTG9nT2JqZWN0LAogICAgICAgIERCT2JqZWN0ICAgICA9PiAkREJPYmplY3QsCiAgICAgICAgTWFpbk9iamVjdCAgID0+ICRNYWluT2JqZWN0LAogICAgICAgIEVuY29kZU9iamVjdCA9PiAkRW5jb2RlT2JqZWN0LAogICAgKTsKICAgIG15ICRTdGF0ZU9iamVjdCA9IEtlcm5lbDo6U3lzdGVtOjpTdGF0ZS0+bmV3KAogICAgICAgIENvbmZpZ09iamVjdCA9PiAkQ29uZmlnT2JqZWN0LAogICAgICAgIExvZ09iamVjdCAgICA9PiAkTG9nT2JqZWN0LAogICAgICAgIERCT2JqZWN0ICAgICA9PiAkREJPYmplY3QsCiAgICAgICAgTWFpbk9iamVjdCAgID0+ICRNYWluT2JqZWN0LAogICAgICAgIEVuY29kZU9iamVjdCA9PiAkRW5jb2RlT2JqZWN0LAogICAgKTsKICAgIG15ICRMb2NrT2JqZWN0ID0gS2VybmVsOjpTeXN0ZW06OkxvY2stPm5ldygKICAgICAgICBDb25maWdPYmplY3QgPT4gJENvbmZpZ09iamVjdCwKICAgICAgICBMb2dPYmplY3QgICAgPT4gJExvZ09iamVjdCwKICAgICAgICBEQk9iamVjdCAgICAgPT4gJERCT2JqZWN0LAogICAgICAgIE1haW5PYmplY3QgICA9PiAkTWFpbk9iamVjdCwKICAgICAgICBFbmNvZGVPYmplY3QgPT4gJEVuY29kZU9iamVjdCwKICAgICk7CiAgICBteSAkU0xBT2JqZWN0ID0gS2VybmVsOjpTeXN0ZW06OlNMQS0+bmV3KAogICAgICAgIENvbmZpZ09iamVjdCA9PiAkQ29uZmlnT2JqZWN0LAogICAgICAgIEVuY29kZU9iamVjdCA9PiAkRW5jb2RlT2JqZWN0LAogICAgICAgIExvZ09iamVjdCAgICA9PiAkTG9nT2JqZWN0LAogICAgICAgIERCT2JqZWN0ICAgICA9PiAkREJPYmplY3QsCiAgICAgICAgTWFpbk9iamVjdCAgID0+ICRNYWluT2JqZWN0LAogICAgKTsKICAgIG15ICRDdXN0b21lclVzZXJPYmplY3QgPSBLZXJuZWw6OlN5c3RlbTo6Q3VzdG9tZXJVc2VyLT5uZXcoCiAgICAgICAgQ29uZmlnT2JqZWN0ID0+ICRDb25maWdPYmplY3QsCiAgICAgICAgTG9nT2JqZWN0ICAgID0+ICRMb2dPYmplY3QsCiAgICAgICAgREJPYmplY3QgICAgID0+ICREQk9iamVjdCwKICAgICAgICBNYWluT2JqZWN0ICAgPT4gJE1haW5PYmplY3QsCiAgICAgICAgRW5jb2RlT2JqZWN0ID0+ICRFbmNvZGVPYmplY3QsCiAgICApOwogICAgbXkgJFRpY2tldE9iamVjdCA9IEtlcm5lbDo6U3lzdGVtOjpUaWNrZXQtPm5ldygKICAgICAgICBDb25maWdPYmplY3QgICAgICAgPT4gJENvbmZpZ09iamVjdCwKICAgICAgICBMb2dPYmplY3QgICAgICAgICAgPT4gJExvZ09iamVjdCwKICAgICAgICBEQk9iamVjdCAgICAgICAgICAgPT4gJERCT2JqZWN0LAogICAgICAgIE1haW5PYmplY3QgICAgICAgICA9PiAkTWFpbk9iamVjdCwKICAgICAgICBUaW1lT2JqZWN0ICAgICAgICAgPT4gJFRpbWVPYmplY3QsCiAgICAgICAgRW5jb2RlT2JqZWN0ICAgICAgID0+ICRFbmNvZGVPYmplY3QsCiAgICAgICAgR3JvdXBPYmplY3QgICAgICAgID0+ICRHcm91cE9iamVjdCwgICAgICAgICMgaWYgZ2l2ZW4KICAgICAgICBDdXN0b21lclVzZXJPYmplY3QgPT4gJEN1c3RvbWVyVXNlck9iamVjdCwgIyBpZiBnaXZlbgogICAgICAgIFF1ZXVlT2JqZWN0ICAgICAgICA9PiAkUXVldWVPYmplY3QsICAgICAgICAjIGlmIGdpdmVuCiAgICApOwogICAgbXkgJExpbmtPYmplY3QgPSBLZXJuZWw6OlN5c3RlbTo6TGlua09iamVjdC0+bmV3KAogICAgICAgIENvbmZpZ09iamVjdCA9PiAkQ29uZmlnT2JqZWN0LAogICAgICAgIExvZ09iamVjdCAgICA9PiAkTG9nT2JqZWN0LAogICAgICAgIERCT2JqZWN0ICAgICA9PiAkREJPYmplY3QsCiAgICAgICAgVGltZU9iamVjdCAgID0+ICRUaW1lT2JqZWN0LAogICAgICAgIE1haW5PYmplY3QgICA9PiAkTWFpbk9iamVjdCwKICAgICAgICBFbmNvZGVPYmplY3QgPT4gJEVuY29kZU9iamVjdCwKICAgICk7CiAgICBteSAkaVBob25lT2JqZWN0ID0gS2VybmVsOjpTeXN0ZW06OmlQaG9uZS0+bmV3KAogICAgICAgIENvbmZpZ09iamVjdCAgICAgICA9PiAkQ29uZmlnT2JqZWN0LAogICAgICAgIExvZ09iamVjdCAgICAgICAgICA9PiAkTG9nT2JqZWN0LAogICAgICAgIERCT2JqZWN0ICAgICAgICAgICA9PiAkREJPYmplY3QsCiAgICAgICAgTWFpbk9iamVjdCAgICAgICAgID0+ICRNYWluT2JqZWN0LAogICAgICAgIFRpbWVPYmplY3QgICAgICAgICA9PiAkVGltZU9iamVjdCwKICAgICAgICBFbmNvZGVPYmplY3QgICAgICAgPT4gJEVuY29kZU9iamVjdCwKICAgICAgICBHcm91cE9iamVjdCAgICAgICAgPT4gJEdyb3VwT2JqZWN0LAogICAgICAgIEN1c3RvbWVyVXNlck9iamVjdCA9PiAkQ3VzdG9tZXJVc2VyT2JqZWN0LAogICAgICAgIFF1ZXVlT2JqZWN0ICAgICAgICA9PiAkUXVldWVPYmplY3QsCiAgICAgICAgVXNlck9iamVjdCAgICAgICAgID0+ICRVc2VyT2JqZWN0LAogICAgICAgIFF1ZXVlT2JqZWN0ICAgICAgICA9PiAkUXVldWVPYmplY3QsCiAgICAgICAgU2VydmljZU9iamVjdCAgICAgID0+ICRTZXJ2aWNlT2JqZWN0LAogICAgICAgIFR5cGVPYmplY3QgICAgICAgICA9PiAkVHlwZU9iamVjdCwKICAgICAgICBTdGF0ZU9iamVjdCAgICAgICAgPT4gJFN0YXRlT2JqZWN0LAogICAgICAgIExvY2tPYmplY3QgICAgICAgICA9PiAkTG9ja09iamVjdCwKICAgICAgICBTTEFPYmplY3QgICAgICAgICAgPT4gJFNMQU9iamVjdCwKICAgICAgICBUaWNrZXRPYmplY3QgICAgICAgPT4gJFRpY2tldE9iamVjdCwKICAgICAgICBMaW5rT2JqZWN0ICAgICAgICAgPT4gJExpbmtPYmplY3QsCiAgICApOwoKPWN1dAoKc3ViIG5ldyB7CiAgICBteSAoICRUeXBlLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgYWxsb2NhdGUgbmV3IGhhc2ggZm9yIG9iamVjdAogICAgbXkgJFNlbGYgPSB7JVBhcmFtfTsKICAgIGJsZXNzKCAkU2VsZiwgJFR5cGUgKTsKCiAgICAjIGNoZWNrIG5lZWRlZCBvYmplY3RzCiAgICBmb3IgKAogICAgICAgIHF3KENvbmZpZ09iamVjdCBVc2VyT2JqZWN0IEdyb3VwT2JqZWN0IFF1ZXVlT2JqZWN0IFNlcnZpY2VPYmplY3QgVHlwZU9iamVjdAogICAgICAgIFN0YXRlT2JqZWN0IExvY2tPYmplY3QgU0xBT2JqZWN0IEN1c3RvbWVyVXNlck9iamVjdCBUaWNrZXRPYmplY3QgTGlua09iamVjdCApCiAgICAgICAgKQogICAgewogICAgICAgICRTZWxmLT57JF99ID0gJFBhcmFteyRffSB8fCBkaWUgIkdvdCBubyAkXyEgb2JqZWN0IjsKICAgIH0KCiAgICAkU2VsZi0+e0NoZWNrSXRlbU9iamVjdH0gICAgPSBLZXJuZWw6OlN5c3RlbTo6Q2hlY2tJdGVtLT5uZXcoJVBhcmFtKTsKICAgICRTZWxmLT57UHJpb3JpdHlPYmplY3R9ICAgICA9IEtlcm5lbDo6U3lzdGVtOjpQcmlvcml0eS0+bmV3KCVQYXJhbSk7CiAgICAkU2VsZi0+e1N5c3RlbUFkZHJlc3N9ICAgICAgPSBLZXJuZWw6OlN5c3RlbTo6U3lzdGVtQWRkcmVzcy0+bmV3KCVQYXJhbSk7CiAgICAkU2VsZi0+e0R5bmFtaWNGaWVsZE9iamVjdH0gPSBLZXJuZWw6OlN5c3RlbTo6RHluYW1pY0ZpZWxkLT5uZXcoJVBhcmFtKTsKICAgICRTZWxmLT57QmFja2VuZE9iamVjdH0gICAgICA9IEtlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQ6OkJhY2tlbmQtPm5ldyglUGFyYW0pOwoKICAgIHJldHVybiAkU2VsZjsKfQoKPWl0ZW0gU2NyZWVuQ29uZmlnKCkKR2V0IGZpZWxkcyBkZWZpbnRpb24gZm9yIGVhY2ggc2NyZWVuIChQaG9uZSwgTm90ZSwgQ2xvc2UsIENvbXBvc2Ugb3IgTW92ZSkKClBob25lICAgKE5ldyBwaG9uZSB0aWNrZXQpCk5vdGUgICAgKEFkZCBhIG5vdGUgdG8gYSBUaWNrZXQpCkNsb3NlICAgKENsb3NlIGEgdGNrZXQpCkNvbXBvc2UgKFJlcGx5IG9yIHJlc3BvbnNlIGEgdGlja2V0KQpNb3ZlICAgIChDaGFuZ2UgdGlja2V0IHF1ZXVlKQoKTm90ZSwgQ2xvc2UsIENvbXBvc2UgYW5kIE1vdmUsIHJlcXVpcmVzIFRpY2tldElEIGFyZ3VtZW50CgpUaGUgZmllbGRzIHRoYXQgYXJlIHJldHVybmVkIGRlcGVuZCBvbiB0aGUgU2NyZWVuIEFyZ3VtZW50IGFuZCBvbiB0aGUgU2V0dGluZ3MgaW4gc3lzY29uZmlnIGZvciB0aGUgaVBob25lCmFzIHdlbGwgYXMgb24gZ2VuZXJhbCBzZXR0aW5ncy4KCiAgICBteSBAUmVzdWx0ID0gJGlQaG9uZU9iamVjdC0+U2NyZWVuQ29uZmlnKAogICAgICAgIFNjcmVlbiA9PiAiUGhvbmUiLAogICAgICAgIFVzZXJJRCA9PiAxLAogICAgKTsKCiAgICBteSBAUmVzdWx0ID0gJGlQaG9uZU9iamVjdC0+U2NyZWVuQ29uZmlnKAogICAgICAgIFNjcmVlbiAgID0+ICJOb3RlIiwKICAgICAgICBUaWNrZXRJRCA9PiAyMjQsCiAgICAgICAgVXNlcklEICAgPT4gMSwKICAgICk7CgogICAgIyBhIHJlc3VsdCBjb3VsZCBiZQoKICAgIEBSZXN1bHQgPSAoCiAgICAgICAgQWN0aW9ucyA9PiB7CiAgICAgICAgICAgIFBhcmFtZXRlcnMgPT4gewogICAgICAgICAgICAgICAgQWN0aW9uID0+ICJQaG9uZSIsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIE1ldGhvZCA9PiAiU2NyZWVuQWN0aW9ucyIsCiAgICAgICAgICAgIE9iamVjdCA9PiAiQ3VzdG9tT2JqZWN0IiwKICAgICAgICAgICAgVGl0bGUgPT4gIk5ldyBQaG9uZSBUaWNrZXQiCiAgICAgICB9LAogICAgICAgIEVsZW1lbnRzID0+ICgKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTmFtZSAgICAgICA9PiAiVHlwZUlEIiwKICAgICAgICAgICAgICAgIFRpdGxlICAgICAgPT4gIlR5cGUiLAogICAgICAgICAgICAgICAgRGF0YXR5cGUgICA9PiAiVGV4dCIsCiAgICAgICAgICAgICAgICBWaWV3dHlwZSAgID0+ICJQaWNrZXIiLAogICAgICAgICAgICAgICAgT3B0aW9ucyAgICA9PiB7CiAgICAgICAgICAgICAgICAgICAgMT0+ICJkZWZhdWx0IiwKICAgICAgICAgICAgICAgICAgICAyPT4gIlJmQyIsCiAgICAgICAgICAgICAgICAgICAgMz0+ICJJbmNpZGVudCIsCiAgICAgICAgICAgICAgICAgICAgND0+ICJJbmNpZGVudDo6U2VydmljZVJlcXVlc3QiLAogICAgICAgICAgICAgICAgICAgIDU9PiAiSW5jaWRlbnQ6OkRpc2FzdGVyIgogICAgICAgICAgICAgICAgICAgIDY9PiAiUHJvYmxlbSIsCiAgICAgICAgICAgICAgICAgICAgNz0+ICJQcm9ibGVtOjpLbm93bkVycm9yIiwKICAgICAgICAgICAgICAgICAgICA4PT4gIlByb2JsZW06OlBlbmRpbmdSZkMiLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIERlZmF1bHQgICA9PiIiLAogICAgICAgICAgICAgICAgTWFuZGF0b3J5ID0+IDEsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE5hbWUgICAgICAgICAgID0+ICJDdXN0b21lclVzZXJMb2dpbiIsCiAgICAgICAgICAgICAgICBUaXRsZSAgICAgICAgICA9PiAiRnJvbSBjdXN0b21lciIsCiAgICAgICAgICAgICAgICBEYXRhdHlwZSAgICAgICA9PiAiVGV4dCIsCiAgICAgICAgICAgICAgICBWaWV3dHlwZSAgICAgICA9PiJBdXRvQ29tcGxldGlvbiIsCiAgICAgICAgICAgICAgICBEeW5hbWljT3B0aW9ucyA9PiB7CiAgICAgICAgICAgICAgICAgICAgT2JqZWN0ICAgICA9PiAiQ3VzdG9tT2JqZWN0IiwKICAgICAgICAgICAgICAgICAgICBNZXRob2QgICAgID0+IkN1c3RvbWVyU2VhcmNoIiwKICAgICAgICAgICAgICAgICAgICBQYXJhbWV0ZXJzID0+CiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFNlYXJjaCA9PiAiQ3VzdG9tZXJVc2VyTG9naW4iLAogICAgICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIERlZmF1bHQgICAgICAgID0+ICIiLAogICAgICAgICAgICAgICAgTWFuZGF0b3J5ICAgICAgPT4gMSwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTmFtZSAgICAgID0+ICJRdWV1ZUlEIiwKICAgICAgICAgICAgICAgIFRpdGxlICAgICA9PiAiVG8gcXVldWUiLAogICAgICAgICAgICAgICAgRGF0YXR5cGUgID0+ICJUZXh0IiwKICAgICAgICAgICAgICAgIFZpZXd0eXBlICA9PiAiUGlja2VyIiwKICAgICAgICAgICAgICAgIE9wdGlvbnMgICA9PnsKICAgICAgICAgICAgICAgICAgICAgID0+ICItIiwKICAgICAgICAgICAgICAgICAgICAxID0+ICJQb3N0bWFzdGVyIiwKICAgICAgICAgICAgICAgICAgICAyID0+ICJSYXciLAogICAgICAgICAgICAgICAgICAgIDMgPT4gIkp1bmsiLAogICAgICAgICAgICAgICAgICAgIDQgPT4gIk1pc2MiLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIERlZmF1bHQgICA9PiAiIiwKICAgICAgICAgICAgICAgIE1hbmRhdG9yeSA9PiAxLAogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBOYW1lICAgICAgICAgICA9PiAiU2VydmljZUlEIiwKICAgICAgICAgICAgICAgIFRpdGxlICAgICAgICAgID0+ICJTZXJ2aWNlIiwKICAgICAgICAgICAgICAgIERhdGF0eXBlICAgICAgID0+ICJUZXh0IiwKICAgICAgICAgICAgICAgIFZpZXd0eXBlICAgICAgID0+IlBpY2tlciIsCiAgICAgICAgICAgICAgICBEeW5hbWljT3B0aW9ucyA9PiB7CiAgICAgICAgICAgICAgICAgICAgT2JqZWN0ICAgICA9PiAiQ3VzdG9tT2JqZWN0IgogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAgICAgPT4gIlNlcnZpY2VzR2V0IiwKICAgICAgICAgICAgICAgICAgICBQYXJhbWV0ZXJzID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgQ3VzdG9tZXJVc2VySUQgPT4gIkN1c3RvbWVyVXNlckxvZ2luIiwKICAgICAgICAgICAgICAgICAgICAgICAgUXVldWVJRCAgICAgICAgPT4gIlF1ZXVlSUQiLAogICAgICAgICAgICAgICAgICAgICAgICBUaWNrZXRJRCAgICAgICA9PiAiVGlja2V0SUQiLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgTWFuZGF0b3J5ICAgICAgPT4gMCwKICAgICAgICAgICAgICAgIERlZmF1bHQgICAgICAgID0+ICIiLAogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBOYW1lICAgICAgICAgICA9PiAiU0xBSUQiLAogICAgICAgICAgICAgICAgVGl0bGUgICAgICAgICAgPT4gIlNMQSIsCiAgICAgICAgICAgICAgICBEYXRhdHlwZSAgICAgICA9PiAiVGV4dCIsCiAgICAgICAgICAgICAgICBWaWV3dHlwZSAgICAgICA9PiAiUGlja2VyIiwKICAgICAgICAgICAgICAgIER5bmFtaWNPcHRpb25zID0+IHsKICAgICAgICAgICAgICAgICAgICBPYmplY3QgICAgID0+ICJDdXN0b21PYmplY3QiLAogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAgICAgPT4gIlNMQXNHZXQiLAogICAgICAgICAgICAgICAgICAgIFBhcmFtZXRlcnMgPT4gewogICAgICAgICAgICAgICAgICAgICAgICBDdXN0b21lclVzZXJJRCA9PiAiQ3VzdG9tZXJVc2VyTG9naW4iLAogICAgICAgICAgICAgICAgICAgICAgICBRdWV1ZUlEICAgICAgICA9PiAiUXVldWVJRCIsCiAgICAgICAgICAgICAgICAgICAgICAgIFNlcnZpY2VJRCAgICAgID0+ICJTZXJ2aWNlSUQiLAogICAgICAgICAgICAgICAgICAgICAgICBUaWNrZXRJRCAgICAgICA9PiAiVGlja2V0SUQiLgogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgRGVmYXVsdCAgICAgICAgPT4gIiIsCiAgICAgICAgICAgICAgICBNYW5kYXRvcnkgICAgICA9PiAwLAogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBOYW1lICAgICAgICAgICA9PiAiT3duZXJJRCIsCiAgICAgICAgICAgICAgICBUaXRsZSAgICAgICAgICA9PiAiT3duZXIiLAogICAgICAgICAgICAgICAgRGF0YXR5cGUgICAgICAgPT4gIlRleHQiLAogICAgICAgICAgICAgICAgVmlld3R5cGUgICAgICAgPT4iUGlja2VyIiwKICAgICAgICAgICAgICAgIER5bmFtaWNPcHRpb25zID0+IHsKICAgICAgICAgICAgICAgICAgICBQYXJhbWV0ZXJzID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgUXVldWVJRCAgPT4gIlF1ZXVlSUQiLAogICAgICAgICAgICAgICAgICAgICAgICBBbGxVc2VycyA9PiAxLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICAgICAgTWV0aG9kICAgICA9PiAiVXNlcnNHZXQiLAogICAgICAgICAgICAgICAgICAgIE9iamVjdCAgICAgPT4gIkN1c3RvbU9iamVjdCIsCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgRGVmYXVsdCAgICAgICAgPT4gIiIsCiAgICAgICAgICAgICAgICBNYW5kYXRvcnkgICAgICA9PiAwLAogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBOYW1lICAgICAgICAgICA9PiAiUmVzcG9uc2libGVJRCIsCiAgICAgICAgICAgICAgICBUaXRsZSAgICAgICAgICA9PiAiUmVzcG9uc2libGUiLAogICAgICAgICAgICAgICAgRGF0YXR5cGUgICAgICAgPT4gIlRleHQiLAogICAgICAgICAgICAgICAgVmlld3R5cGUgICAgICAgPT4gIlBpY2tlciIsCiAgICAgICAgICAgICAgICBEeW5hbWljT3B0aW9ucyA9PiB7CiAgICAgICAgICAgICAgICAgICAgT2JqZWN0ICAgICA9PiAiQ3VzdG9tT2JqZWN0IiwKICAgICAgICAgICAgICAgICAgICBNZXRob2QgICAgID0+ICJVc2Vyc0dldCIsCiAgICAgICAgICAgICAgICAgICAgUGFyYW1ldGVycyA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIFF1ZXVlSUQgID0+ICJRdWV1ZUlEIiwKICAgICAgICAgICAgICAgICAgICAgICAgQWxsVXNlcnMgPT4gMQogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgRGVmYXVsdCAgICAgICAgPT4gIiIsCiAgICAgICAgICAgICAgICBNYW5kYXRvcnkgICAgICA9PiAwLAogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBOYW1lICAgICAgPT4gIlN1YmplY3QiLAogICAgICAgICAgICAgICAgVGl0bGUgICAgID0+ICJTdWJqZWN0IiwKICAgICAgICAgICAgICAgIERhdGF0eXBlICA9PiAiVGV4dCIsCiAgICAgICAgICAgICAgICBWaWV3dHlwZSAgPT4gIklucHV0IiwKICAgICAgICAgICAgICAgIE1heCAgICAgICA9PiAyNTAsCiAgICAgICAgICAgICAgICBNaW4gICAgICAgPT4gMSwKICAgICAgICAgICAgICAgIERlZmF1bHQgICA9PiAiIiwKICAgICAgICAgICAgICAgIE1hbmRhdG9yeSA9PiAxLAogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBOYW1lICAgICAgPT4gIkJvZHkiLAogICAgICAgICAgICAgICAgVGl0bGUgICAgID0+ICJUZXh0IiwKICAgICAgICAgICAgICAgIERhdGF0eXBlICA9PiAiVGV4dCIsCiAgICAgICAgICAgICAgICBWaWV3dHlwZSAgPT4gIlRleHRBcmVhIiwKICAgICAgICAgICAgICAgIE1heCAgICAgICA9PiAyMDAwMCwKICAgICAgICAgICAgICAgIE1pbiAgICAgICA9PiAxLAogICAgICAgICAgICAgICAgRGVmYXVsdCAgID0+ICIiLAogICAgICAgICAgICAgICAgTWFuZGF0b3J5ID0+IDEsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE5hbWUgICAgICA9PiAiQ3VzdG9tZXJJRCIsCiAgICAgICAgICAgICAgICBUaXRsZSAgICAgPT4gIkN1c3RvbWVySUQiLAogICAgICAgICAgICAgICAgRGF0YXR5cGUgID0+ICJUZXh0IiwKICAgICAgICAgICAgICAgIFZpZXd0eXBlICA9PiAiSW5wdXQiLAogICAgICAgICAgICAgICAgTWF4ICAgICAgID0+IDE1MCwKICAgICAgICAgICAgICAgIE1pbiAgICAgICA9PiAxLAogICAgICAgICAgICAgICAgRGVmYXVsdCAgID0+ICIiLAogICAgICAgICAgICAgICAgTWFuZGF0b3J5ID0+IDAsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE5hbWUgICAgICAgICAgID0+ICJTdGF0ZUlEIiwKICAgICAgICAgICAgICAgIFRpdGxlICAgICAgICAgID0+ICJOZXh0IFRpY2tldCBTdGF0ZSIsCiAgICAgICAgICAgICAgICBEYXRhdHlwZSAgICAgICA9PiAiVGV4dCIsCiAgICAgICAgICAgICAgICBWaWV3dHlwZSAgICAgICA9PiAiUGlja2VyIiwKICAgICAgICAgICAgICAgIER5bmFtaWNPcHRpb25zID0+IHsKICAgICAgICAgICAgICAgICAgICBNZXRob2QgICAgID0+ICJOZXh0U3RhdGVzR2V0IiwKICAgICAgICAgICAgICAgICAgICBPYmplY3QgICAgID0+ICJDdXN0b21PYmplY3QiLAogICAgICAgICAgICAgICAgICAgIFBhcmFtZXRlcnMgPT4gewogICAgICAgICAgICAgICAgICAgICAgICBRdWV1ZUlEID0+ICJRdWV1ZUlEIiwKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIERlZmF1bHQgICAgICAgID0+ICI0IiwKICAgICAgICAgICAgICAgIERlZmF1bHRPcHRpb24gID0+ICJvcGVuIiwKICAgICAgICAgICAgICAgIE1hbmRhdG9yeSAgICAgID0+IDEsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE5hbWUgICAgICA9PiAiUGVuZGluZ0RhdGUiLAogICAgICAgICAgICAgICAgVGl0bGUgICAgID0+ICJQZW5kaW5nIERhdGUgKGZvciBwZW5kaW5nKiBzdGF0ZXMpIgogICAgICAgICAgICAgICAgRGF0YXR5cGUgID0+ICJEYXRlVGltZSIsCiAgICAgICAgICAgICAgICBWaWV3dHlwZSAgPT4gIlBpY2tlciIsCiAgICAgICAgICAgICAgICBEZWZhdWx0ICAgPT4gIiIsCiAgICAgICAgICAgICAgICBNYW5kYXRvcnkgPT4gMCwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTmFtZSAgICAgICAgICAgPT4gIlByaW9yaXR5SUQiLAogICAgICAgICAgICAgICAgVGl0bGUgICAgICAgICAgPT4gIlByaW9yaXR5IgogICAgICAgICAgICAgICAgRGF0YXR5cGUgICAgICAgPT4gIlRleHQiLAogICAgICAgICAgICAgICAgVmlld3R5cGUgICAgICAgPT4gIlBpY2tlciIsCiAgICAgICAgICAgICAgICBEeW5hbWljT3B0aW9ucyA9PiB7CiAgICAgICAgICAgICAgICAgICAgT2JqZWN0ICAgICA9PiAiQ3VzdG9tT2JqZWN0IgogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAgICAgPT4gIlByaW9yaXRpZXNHZXQiLAogICAgICAgICAgICAgICAgICAgIFBhcmFtZXRlcnMgPT4gIiIsCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgRGVmYXVsdE9wdGlvbiAgPT4gIjMgbm9ybWFsIiwKICAgICAgICAgICAgICAgIERlZmF1bHQgICAgICAgID0+ICIzIiwKICAgICAgICAgICAgICAgIE1hbmRhdG9yeSAgICAgID0+IDEsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE5hbWUgICAgICAgID0+ICJEeW5hbWljRmllbGRfTmFtZVgiLAogICAgICAgICAgICAgICAgVGl0bGUgICAgICAgPT4gIlByb2R1Y3QiLAogICAgICAgICAgICAgICAgRGF0YXR5cGUgICAgPT4gIlRleHQiLAogICAgICAgICAgICAgICAgVmlld3R5cGUgICAgPT4gIlBpY2tlciIsCiAgICAgICAgICAgICAgICBPcHRpb25zICAgICA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gIi0iLAogICAgICAgICAgICAgICAgICAgIFBob25lICAgID0+ICJQaG9uZSIsCiAgICAgICAgICAgICAgICAgICAgTm90ZWJvb2sgPT4gIk5vdGVib29rIiwKICAgICAgICAgICAgICAgICAgICBQQyAgICAgICA9PiAiUEMiLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIERlZmF1bHQgICAgID0+ICJOb3RlYm9vayIsCiAgICAgICAgICAgICAgICBNYW5kYXRvcnkgICA9PiAwLAogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBOYW1lID0+ICJUaW1lVW5pdHMiLAogICAgICAgICAgICAgICAgVGl0bGUgPT4gIlRpbWUgdW5pdHMgKHdvcmsgdW5pdHMpIiwKICAgICAgICAgICAgICAgIERhdGF0eXBlID0+ICJOdW1lcmljIiwKICAgICAgICAgICAgICAgIFZpZXd0eXBlID0+ICJJbnB1dCIsCiAgICAgICAgICAgICAgICBNYXggPT4gMTAsCiAgICAgICAgICAgICAgICBNaW4gPT4gMSwKICAgICAgICAgICAgICAgIERlZmF1bHQgPT4gIiIsCiAgICAgICAgICAgICAgICBNYW5kYXRvcnkgPT4gMCwKICAgICAgICAgICAgfSwKICAgICAgICApLAogICAgKTsKCj1jdXQKCnN1YiBTY3JlZW5Db25maWcgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAkU2VsZi0+e0xhbmd1YWdlT2JqZWN0fSA9IEtlcm5lbDo6TGFuZ3VhZ2UtPm5ldyggJXskU2VsZn0sIFVzZXJMYW5ndWFnZSA9PiAkUGFyYW17TGFuZ3VhZ2V9ICk7CgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgIyBOZXcgUGhvbmUgVGlja2V0IFNjcmVlbgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwoKICAgIGlmICggJFBhcmFte1NjcmVlbn0gZXEgJ1Bob25lJyApIHsKCiAgICAgICAgIyBnZXQgc2NyZWVuIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgaXBob25lIGZyb20gc3lzY29uZmlnCiAgICAgICAgJFNlbGYtPntDb25maWd9ID0gJFNlbGYtPntDb25maWdPYmplY3R9LT5HZXQoJ2lQaG9uZTo6RnJvbnRlbmQ6OkFnZW50VGlja2V0UGhvbmUnKTsKICAgICAgICBteSAlQ29uZmlnID0gKAogICAgICAgICAgICBUaXRsZSAgICA9PiAkU2VsZi0+e0xhbmd1YWdlT2JqZWN0fS0+R2V0KCdOZXcgUGhvbmUgVGlja2V0JyksCiAgICAgICAgICAgIEVsZW1lbnRzID0+ICRTZWxmLT5fR2V0U2NyZWVuRWxlbWVudHMoJVBhcmFtKSwKICAgICAgICAgICAgQWN0aW9ucyAgPT4gewogICAgICAgICAgICAgICAgT2JqZWN0ICAgICA9PiAnQ3VzdG9tT2JqZWN0JywKICAgICAgICAgICAgICAgIE1ldGhvZCAgICAgPT4gJ1NjcmVlbkFjdGlvbnMnLAogICAgICAgICAgICAgICAgUGFyYW1ldGVycyA9PiB7CiAgICAgICAgICAgICAgICAgICAgQWN0aW9uID0+ICdQaG9uZScsCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICB9LAogICAgICAgICk7CiAgICAgICAgcmV0dXJuIFwlQ29uZmlnOwogICAgfQoKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgICMgQWRkIE5vdGUgU2NyZWVuCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICBpZiAoICRQYXJhbXtTY3JlZW59IGVxICdOb3RlJyApIHsKCiAgICAgICAgIyBnZXQgc2NyZWVuIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgaXBob25lIGZyb20gc3lzY29uZmlnCiAgICAgICAgJFNlbGYtPntDb25maWd9ID0gJFNlbGYtPntDb25maWdPYmplY3R9LT5HZXQoJ2lQaG9uZTo6RnJvbnRlbmQ6OkFnZW50VGlja2V0Tm90ZScpOwoKICAgICAgICBteSAlQ29uZmlnID0gKAogICAgICAgICAgICBUaXRsZSAgICA9PiAkU2VsZi0+e0xhbmd1YWdlT2JqZWN0fS0+R2V0KCdBZGQgTm90ZScpLAogICAgICAgICAgICBFbGVtZW50cyA9PiAkU2VsZi0+X0dldFNjcmVlbkVsZW1lbnRzKCVQYXJhbSksCiAgICAgICAgICAgIEFjdGlvbnMgID0+IHsKICAgICAgICAgICAgICAgIE9iamVjdCAgICAgPT4gJ0N1c3RvbU9iamVjdCcsCiAgICAgICAgICAgICAgICBNZXRob2QgICAgID0+ICdTY3JlZW5BY3Rpb25zJywKICAgICAgICAgICAgICAgIFBhcmFtZXRlcnMgPT4gewogICAgICAgICAgICAgICAgICAgIEFjdGlvbiAgID0+ICdOb3RlJywKICAgICAgICAgICAgICAgICAgICBUaWNrZXRJRCA9PiAkUGFyYW17VGlja2V0SUR9LAogICAgICAgICAgICAgICAgICAgIFRpdGxlICAgID0+ICdhIHRpdGxlJywKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgIH0sCiAgICAgICAgKTsKICAgICAgICByZXR1cm4gXCVDb25maWc7CiAgICB9CgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgIyBDbG9zZSBUaWNrZXQgU2NyZWVuCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCgogICAgaWYgKCAkUGFyYW17U2NyZWVufSBlcSAnQ2xvc2UnICkgewoKICAgICAgICAjIGdldCBzY3JlZW4gY29uZmlndXJhdGlvbiBvcHRpb25zIGZvciBpcGhvbmUgZnJvbSBzeXNjb25maWcKICAgICAgICAkU2VsZi0+e0NvbmZpZ30gPSAkU2VsZi0+e0NvbmZpZ09iamVjdH0tPkdldCgnaVBob25lOjpGcm9udGVuZDo6QWdlbnRUaWNrZXRDbG9zZScpOwoKICAgICAgICBteSAlQ29uZmlnID0gKAogICAgICAgICAgICBUaXRsZSAgICA9PiAkU2VsZi0+e0xhbmd1YWdlT2JqZWN0fS0+R2V0KCdDbG9zZScpLAogICAgICAgICAgICBFbGVtZW50cyA9PiAkU2VsZi0+X0dldFNjcmVlbkVsZW1lbnRzKCVQYXJhbSksCiAgICAgICAgICAgIEFjdGlvbnMgID0+IHsKICAgICAgICAgICAgICAgIE9iamVjdCAgICAgPT4gJ0N1c3RvbU9iamVjdCcsCiAgICAgICAgICAgICAgICBNZXRob2QgICAgID0+ICdTY3JlZW5BY3Rpb25zJywKICAgICAgICAgICAgICAgIFBhcmFtZXRlcnMgPT4gewogICAgICAgICAgICAgICAgICAgIEFjdGlvbiAgID0+ICdDbG9zZScsCiAgICAgICAgICAgICAgICAgICAgVGlja2V0SUQgPT4gJFBhcmFte1RpY2tldElEfSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgIH0sCiAgICAgICAgKTsKICAgICAgICByZXR1cm4gXCVDb25maWc7CiAgICB9CgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgIyBDb21wb3NlIFNjcmVlbgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwoKICAgIGlmICggJFBhcmFte1NjcmVlbn0gZXEgJ0NvbXBvc2UnICkgewoKICAgICAgICAjIGdldCBzY3JlZW4gY29uZmlndXJhdGlvbiBvcHRpb25zIGZvciBpcGhvbmUgZnJvbSBzeXNjb25maWcKICAgICAgICAkU2VsZi0+e0NvbmZpZ30gPSAkU2VsZi0+e0NvbmZpZ09iamVjdH0tPkdldCgnaVBob25lOjpGcm9udGVuZDo6QWdlbnRUaWNrZXRDb21wb3NlJyk7CgogICAgICAgIG15ICVDb25maWcgPSAoCiAgICAgICAgICAgIFRpdGxlICAgID0+ICRTZWxmLT57TGFuZ3VhZ2VPYmplY3R9LT5HZXQoJ0NvbXBvc2UnKSwKICAgICAgICAgICAgRWxlbWVudHMgPT4gJFNlbGYtPl9HZXRTY3JlZW5FbGVtZW50cyglUGFyYW0pIHx8ICcnLAogICAgICAgICAgICBBY3Rpb25zICA9PiB7CiAgICAgICAgICAgICAgICBPYmplY3QgICAgID0+ICdDdXN0b21PYmplY3QnLAogICAgICAgICAgICAgICAgTWV0aG9kICAgICA9PiAnU2NyZWVuQWN0aW9ucycsCiAgICAgICAgICAgICAgICBQYXJhbWV0ZXJzID0+IHsKICAgICAgICAgICAgICAgICAgICBBY3Rpb24gICAgICAgICA9PiAnQ29tcG9zZScsCiAgICAgICAgICAgICAgICAgICAgVGlja2V0SUQgICAgICAgPT4gJFBhcmFte1RpY2tldElEfSwKICAgICAgICAgICAgICAgICAgICBSZXBseUFydGljbGVJRCA9PiAkUGFyYW17QXJ0aWNsZUlEfSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgIH0sCiAgICAgICAgKTsKICAgICAgICBpZiAoICEkQ29uZmlne0VsZW1lbnRzfSApIHsKICAgICAgICAgICAgcmV0dXJuIC0xOwogICAgICAgIH0KICAgICAgICByZXR1cm4gXCVDb25maWc7CiAgICB9CgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgIyBNb3ZlIFNjcmVlbgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgaWYgKCAkUGFyYW17U2NyZWVufSBlcSAnTW92ZScgKSB7CgogICAgICAgICMgZ2V0IHNjcmVlbiBjb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIGlwaG9uZSBmcm9tIHN5c2NvbmZpZwogICAgICAgICRTZWxmLT57Q29uZmlnfSA9ICRTZWxmLT57Q29uZmlnT2JqZWN0fS0+R2V0KCdpUGhvbmU6OkZyb250ZW5kOjpBZ2VudFRpY2tldE1vdmUnKTsKCiAgICAgICAgbXkgJUNvbmZpZyA9ICgKICAgICAgICAgICAgVGl0bGUgICAgPT4gJFNlbGYtPntMYW5ndWFnZU9iamVjdH0tPkdldCgnTW92ZScpLAogICAgICAgICAgICBFbGVtZW50cyA9PiAkU2VsZi0+X0dldFNjcmVlbkVsZW1lbnRzKCVQYXJhbSksCiAgICAgICAgICAgIEFjdGlvbnMgID0+IHsKICAgICAgICAgICAgICAgIE9iamVjdCAgICAgPT4gJ0N1c3RvbU9iamVjdCcsCiAgICAgICAgICAgICAgICBNZXRob2QgICAgID0+ICdTY3JlZW5BY3Rpb25zJywKICAgICAgICAgICAgICAgIFBhcmFtZXRlcnMgPT4gewogICAgICAgICAgICAgICAgICAgIEFjdGlvbiAgID0+ICdNb3ZlJywKICAgICAgICAgICAgICAgICAgICBUaWNrZXRJRCA9PiAkUGFyYW17VGlja2V0SUR9LAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgfSwKICAgICAgICApOwogICAgICAgIHJldHVybiBcJUNvbmZpZzsKICAgIH0KCiAgICByZXR1cm4gLTE7Cn0KCj1pdGVtIEJhZGdlcygpCgpHZXQgQmFkZ2VzIHRpY2tldCBjb3VudHMgZm9yIFdhdGNoZWQsIExvY2tlZCBhbmQgUmVwb3NpYmxlIGZvciB0aWNrZXRzCgogICAgbXkgQFJlc3VsdCA9ICRpUGhvbmVPYmplY3QtPkJhZGdlcygKICAgICAgICBVc2VySUQgICAgICAgICAgPT4gMSwKICAgICk7CgogICAgIyBhIHJlc3VsdCBjb3VsZCBiZQoKICAgIEBSZXN1bHQgPSAoCiAgICAgICAgTG9ja2VkID0+IHsKICAgICAgICAgICAgQWxsID0+IDEsCiAgICAgICAgICAgIE5ldyA9PiAxLAogICAgICAgIH0sCgogICAgICAgIFdhdGNoZWQgPT4geyAgICAgICAjIE9wdGlvbmFsIGlmIGZlYXR1cmUgaXMgZW5hYmxlZAogICAgICAgICAgICBBbGwgPT4gMiwKICAgICAgICAgICAgTmV3ID0+IDAsCiAgICAgICAgfSwKCiAgICAgICAgUmVzcG9uc2libGUgPT4geyAgICMgT3B0aW9uYWwgaWYgZmVhdHVyZSBpcyBlbmFibGVkCiAgICAgICAgICAgIEFsbCA9PiAxLAogICAgICAgICAgICBOZXcgPT4gMSwKICAgICAgICB9LAogICAgKTsKCj1jdXQKCnN1YiBCYWRnZXMgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSBARGF0YTsKCiAgICAjIGxvY2tlZAogICAgaWYgKDEpIHsKICAgICAgICBteSAkQ291bnQgPSAkU2VsZi0+e1RpY2tldE9iamVjdH0tPlRpY2tldFNlYXJjaCgKICAgICAgICAgICAgUmVzdWx0ICAgICA9PiAnQ09VTlQnLAogICAgICAgICAgICBMb2NrcyAgICAgID0+IFsnbG9jayddLAogICAgICAgICAgICBPd25lcklEcyAgID0+IFsgJFBhcmFte1VzZXJJRH0gXSwKICAgICAgICAgICAgVXNlcklEICAgICA9PiAxLAogICAgICAgICAgICBQZXJtaXNzaW9uID0+ICdybycsCiAgICAgICAgKTsKICAgICAgICBteSAkQ291bnROZXcgPSAkU2VsZi0+e1RpY2tldE9iamVjdH0tPlRpY2tldFNlYXJjaCgKICAgICAgICAgICAgUmVzdWx0ICAgICA9PiAnQ09VTlQnLAogICAgICAgICAgICBMb2NrcyAgICAgID0+IFsnbG9jayddLAogICAgICAgICAgICBPd25lcklEcyAgID0+IFsgJFBhcmFte1VzZXJJRH0gXSwKICAgICAgICAgICAgVGlja2V0RmxhZyA9PiB7CiAgICAgICAgICAgICAgICBTZWVuID0+IDEsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIFRpY2tldEZsYWdVc2VySUQgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgIFVzZXJJRCAgICAgICAgICAgPT4gMSwKICAgICAgICAgICAgUGVybWlzc2lvbiAgICAgICA9PiAncm8nLAogICAgICAgICk7CiAgICAgICAgJENvdW50TmV3ID0gJENvdW50IC0gJENvdW50TmV3OwogICAgICAgIHB1c2ggQERhdGEsIHsKICAgICAgICAgICAgTG9ja2VkID0+IHsKICAgICAgICAgICAgICAgIEFsbCA9PiAkQ291bnQsCiAgICAgICAgICAgICAgICBOZXcgPT4gJENvdW50TmV3LAogICAgICAgICAgICAgICAgfQogICAgICAgIH07CiAgICB9CgogICAgIyByZXNwb25zaWJsZQogICAgaWYgKCAkU2VsZi0+e0NvbmZpZ09iamVjdH0tPkdldCgnVGlja2V0OjpSZXNwb25zaWJsZScpICkgewogICAgICAgIG15ICRDb3VudCA9ICRTZWxmLT57VGlja2V0T2JqZWN0fS0+VGlja2V0U2VhcmNoKAogICAgICAgICAgICBSZXN1bHQgICAgICAgICA9PiAnQ09VTlQnLAogICAgICAgICAgICBTdGF0ZVR5cGUgICAgICA9PiAnT3BlbicsCiAgICAgICAgICAgIFJlc3BvbnNpYmxlSURzID0+IFsgJFBhcmFte1VzZXJJRH0gXSwKICAgICAgICAgICAgVXNlcklEICAgICAgICAgPT4gMSwKICAgICAgICAgICAgUGVybWlzc2lvbiAgICAgPT4gJ3JvJywKICAgICAgICApOwogICAgICAgIG15ICRDb3VudE5ldyA9ICRTZWxmLT57VGlja2V0T2JqZWN0fS0+VGlja2V0U2VhcmNoKAogICAgICAgICAgICBSZXN1bHQgICAgICAgICA9PiAnQ09VTlQnLAogICAgICAgICAgICBTdGF0ZVR5cGUgICAgICA9PiAnT3BlbicsCiAgICAgICAgICAgIFJlc3BvbnNpYmxlSURzID0+IFsgJFBhcmFte1VzZXJJRH0gXSwKICAgICAgICAgICAgVGlja2V0RmxhZyAgICAgPT4gewogICAgICAgICAgICAgICAgU2VlbiA9PiAxLAogICAgICAgICAgICB9LAogICAgICAgICAgICBUaWNrZXRGbGFnVXNlcklEID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICBVc2VySUQgICAgICAgICAgID0+IDEsCiAgICAgICAgICAgIFBlcm1pc3Npb24gICAgICAgPT4gJ3JvJywKICAgICAgICApOwogICAgICAgICRDb3VudE5ldyA9ICRDb3VudCAtICRDb3VudE5ldzsKCiAgICAgICAgcHVzaCBARGF0YSwgewogICAgICAgICAgICBSZXNwb25zaWJsZSA9PiB7CiAgICAgICAgICAgICAgICBBbGwgPT4gJENvdW50LAogICAgICAgICAgICAgICAgTmV3ID0+ICRDb3VudE5ldywKICAgICAgICAgICAgICAgIH0KICAgICAgICB9OwogICAgfQoKICAgICMgd2F0Y2hlZAogICAgaWYgKCAkU2VsZi0+e0NvbmZpZ09iamVjdH0tPkdldCgnVGlja2V0OjpXYXRjaGVyJykgKSB7CgogICAgICAgICMgY2hlY2sgYWNjZXNzCiAgICAgICAgbXkgJEFjY2Vzc09rID0gMTsKICAgICAgICBteSBAR3JvdXBzOwogICAgICAgIGlmICggJFNlbGYtPntDb25maWdPYmplY3R9LT5HZXQoJ1RpY2tldDo6V2F0Y2hlckdyb3VwJykgKSB7CiAgICAgICAgICAgIEBHcm91cHMgPSBAeyAkU2VsZi0+e0NvbmZpZ09iamVjdH0tPkdldCgnVGlja2V0OjpXYXRjaGVyR3JvdXAnKSB9OwogICAgICAgIH0KICAgICAgICBpZiAoQEdyb3VwcykgewogICAgICAgICAgICBteSAkQWNjZXNzID0gMDsKICAgICAgICAgICAgZm9yIG15ICRHcm91cCAoQEdyb3VwcykgewogICAgICAgICAgICAgICAgbmV4dCBpZiAhJFBhcmFteyJVc2VySXNHcm91cFskR3JvdXBdIn07CiAgICAgICAgICAgICAgICBpZiAoICRQYXJhbXsiVXNlcklzR3JvdXBbJEdyb3VwXSJ9IGVxICdZZXMnICkgewogICAgICAgICAgICAgICAgICAgICRBY2Nlc3MgPSAxOwogICAgICAgICAgICAgICAgICAgIGxhc3Q7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgcmV0dXJuIG9uIG5vIGFjY2VzcwogICAgICAgICAgICBpZiAoICEkQWNjZXNzICkgewogICAgICAgICAgICAgICAgJEFjY2Vzc09rID0gMDsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgaWYgKCRBY2Nlc3NPaykgewoKICAgICAgICAgICAgIyBmaW5kIHdhdGNoZWQgdGlja2V0cwogICAgICAgICAgICBteSAkQ291bnQgPSAkU2VsZi0+e1RpY2tldE9iamVjdH0tPlRpY2tldFNlYXJjaCgKICAgICAgICAgICAgICAgIFJlc3VsdCAgICAgICA9PiAnQ09VTlQnLAogICAgICAgICAgICAgICAgV2F0Y2hVc2VySURzID0+IFsgJFBhcmFte1VzZXJJRH0gXSwKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgICA9PiAxLAogICAgICAgICAgICAgICAgUGVybWlzc2lvbiAgID0+ICdybycsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIG15ICRDb3VudE5ldyA9ICRTZWxmLT57VGlja2V0T2JqZWN0fS0+VGlja2V0U2VhcmNoKAogICAgICAgICAgICAgICAgUmVzdWx0ICAgICAgID0+ICdDT1VOVCcsCiAgICAgICAgICAgICAgICBXYXRjaFVzZXJJRHMgPT4gWyAkUGFyYW17VXNlcklEfSBdLAogICAgICAgICAgICAgICAgVGlja2V0RmxhZyAgID0+IHsKICAgICAgICAgICAgICAgICAgICBTZWVuID0+IDEsCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgVGlja2V0RmxhZ1VzZXJJRCA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgICAgICAgPT4gMSwKICAgICAgICAgICAgICAgIFBlcm1pc3Npb24gICAgICAgPT4gJ3JvJywKICAgICAgICAgICAgKTsKICAgICAgICAgICAgJENvdW50TmV3ID0gJENvdW50IC0gJENvdW50TmV3OwoKICAgICAgICAgICAgcHVzaCBARGF0YSwgewogICAgICAgICAgICAgICAgV2F0Y2hlZCA9PiB7CiAgICAgICAgICAgICAgICAgICAgQWxsID0+ICRDb3VudCwKICAgICAgICAgICAgICAgICAgICBOZXcgPT4gJENvdW50TmV3LAogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfTsKICAgICAgICB9CiAgICB9CgogICAgcmV0dXJuIEBEYXRhOwp9Cgo9aXRlbSBFc2NhbGF0aW9uVmlldygpCgpHZXQgdGhlIG51bWJlciBvZiB0aWNrZXRzIG9uIGVzdGFsYXRpb24gc3RhdHVzIGJ5IHN0YXRlIHR5cGUgb3IgbGFzdCBjdXN0b21lciBhcnRpY2xlIGluZm9ybWF0aW9uIGZyb20KZWFjaCB0aWNrZXQgaW4gZXNjYWxhdGlvbiBzdGF0dXMgd2l0aGluIGEgZmlsdGVyLCBpZiB0aGUgIkZpbHRlciIgYXJndW1lbnQgaXMgc3BlY2lmaWVkLgoKICAgIG15IEBSZXN1bHQgPSAkaVBob25lT2JqZWN0LT5Fc2NhbGF0aW9uVmlldygKICAgICAgICBVc2VySUQgID0+IDEsCgogICAgICAgICMgT3JkZXJCeSBhbmQgU29ydEJ5IChvcHRpb25hbCkKICAgICAgICBPcmRlckJ5ID0+ICdEb3duJywgICMgRG93bnxVcAogICAgICAgIFNvcnRCeSAgPT4gJ0FnZScsICAgIyBPd25lcnxSZXNwb25zaWJsZXxDdXN0b21lcklEfFN0YXRlfFRpY2tldE51bWJlcnxRdWV1ZXxQcmlvcml0eXxBZ2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgVHlwZXxMb2NrfFRpdGxlfFNlcnZpY2V8U0xBfFBlbmRpbmdUaW1lfEVzY2FsYXRpb25UaW1lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIEVzY2FsYXRpb25VcGRhdGVUaW1lfEVzY2FsYXRpb25SZXNwb25zZVRpbWV8RXNjYWxhdGlvblNvbHV0aW9uVGltZQogICAgKTsKCiAgICAjIGEgcmVzdWx0IGNvdWxkIGJlCgogICAgQFJlc3VsdCA9ICgKICAgICAgICB7CiAgICAgICAgICAgIFN0YXRlVHlwZSAgICAgICAgICAgICAgICAgICAgICA9PiAiVG9kYXkiLAogICAgICAgICAgICBOdW1iZXJPZlRpY2tldHMgICAgICAgICAgICAgICAgPT4gMiwKICAgICAgICAgICAgTnVtYmVyT2ZUaWNrZXRzV2l0aE5ld01lc3NhZ2VzID0+IDAsCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAgIFN0YXRlVHlwZSAgICAgICAgICAgICAgICAgICAgICA9PiAiVG9tb3Jyb3ciLAogICAgICAgICAgICBOdW1iZXJPZlRpY2tldHMgICAgICAgICAgICAgICAgPT4gMiwKICAgICAgICAgICAgTnVtYmVyT2ZUaWNrZXRzV2l0aE5ld01lc3NhZ2VzID0+IDAsCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAgIFN0YXRlVHlwZSAgICAgICAgICAgICAgICAgICAgICA9PiAiTmV4dFdlZWsiLAogICAgICAgICAgICBOdW1iZXJPZlRpY2tldHMgICAgICAgICAgICAgICAgPT4gMiwKICAgICAgICAgICAgTnVtYmVyT2ZUaWNrZXRzV2l0aE5ld01lc3NhZ2VzID0+IDAKICAgICAgICB9LAogICAgKTsKCiAgICBteSBAUmVzdWx0ID0gJGlQaG9uZU9iamVjdC0+RXNjYWxhdGlvblZpZXcoCiAgICAgICAgVXNlcklEICA9PiAxLAogICAgICAgIEZpbHRlciAgPT4gIlRvZGF5IiwKCiAgICAgICAgI0xpbWl0IChvcHRpb25hbCkgc2V0IHRvIDEwMCBieSBkZWZhdWx0LCBpZiBub3Qgc3BlY2lmaWVkCiAgICAgICAgTGltaXQgICA9PiA1MCwKCiAgICAgICAgIyBPcmRlckJ5IGFuZCBTb3J0QnkgKG9wdGlvbmFsKQogICAgICAgIE9yZGVyQnkgPT4gJ0Rvd24nLCAgIyBEb3dufFVwCiAgICAgICAgU29ydEJ5ICA9PiAnQWdlJywgICAjIE93bmVyfFJlc3BvbnNpYmxlfEN1c3RvbWVySUR8U3RhdGV8VGlja2V0TnVtYmVyfFF1ZXVlfFByaW9yaXR5fEFnZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBUeXBlfExvY2t8VGl0bGV8U2VydmljZXxTTEF8UGVuZGluZ1RpbWV8RXNjYWxhdGlvblRpbWUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgRXNjYWxhdGlvblVwZGF0ZVRpbWV8RXNjYWxhdGlvblJlc3BvbnNlVGltZXxFc2NhbGF0aW9uU29sdXRpb25UaW1lCiAgICApOwoKICAgICNhIHJlc3VsdCBjb3VsZCBiZQoKICAgIEBSZXN1bHQgPSAoCiAgICAgICAgewogICAgICAgICAgICBBZ2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAxNTk2LAogICAgICAgICAgICBBcnRpY2xlSUQgICAgICAgICAgICAgICAgICAgICAgICA9PiA5MjMsCiAgICAgICAgICAgIEFydGljbGVUeXBlICAgICAgICAgICAgICAgICAgICAgID0+ICJwaG9uZSIsCiAgICAgICAgICAgIEJvZHkgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0+ICJUZXN0aW5nIGZvciBlc2NhbGF0aW9uIiwKICAgICAgICAgICAgQ2hhcnNldCAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gInV0Zi04IiwKICAgICAgICAgICAgQ29udGVudENoYXJzZXQgICAgICAgICAgICAgICAgICAgPT4gInV0Zi04IiwKICAgICAgICAgICAgQ29udGVudFR5cGUgICAgICAgICAgICAgICAgICAgICAgPT4gInRleHQvcGxhaW47IiwKICAgICAgICAgICAgY2hhcnNldCAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gInV0Zi04IiwKICAgICAgICAgICAgQ3JlYXRlZCAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gIjIwMTAtMDYtMjMgMTE6NDY6MTUiLAogICAgICAgICAgICBDcmVhdGVkQnkgICAgICAgICAgICAgICAgICAgICAgICA9PiAxLAogICAgICAgICAgICBGaXJzdFJlc3BvbnNlVGltZSAgICAgICAgICAgICAgICA9PiAtMTI5NiwKICAgICAgICAgICAgRmlyc3RSZXNwb25zZVRpbWVEZXN0aW5hdGlvbkRhdGUgPT4gIjIwMTAtMDYtMjMgMTE6NTE6MTQiLAogICAgICAgICAgICBGaXJzdFJlc3BvbnNlVGltZURlc3RpbmF0aW9uVGltZSA9PiAxMjc3MzExODc0LAogICAgICAgICAgICBGaXJzdFJlc3BvbnNlVGltZUVzY2FsYXRpb24gICAgICA9PiAxLAogICAgICAgICAgICBGaXJzdFJlc3BvbnNlVGltZVdvcmtpbmdUaW1lICAgICA9PiAtMTI2MCwKICAgICAgICAgICAgRnJvbSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gImN1c3RvbWVyQG90cnMub3JnIiwKICAgICAgICAgICAgSW5jb21pbmdUaW1lICAgICAgICAgICAgICAgICAgICAgPT4gMTI3NzMxMTU3NSwKICAgICAgICAgICAgTG9jayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gInVubG9jayIsCiAgICAgICAgICAgIE1pbWVUeXBlICAgICAgICAgICAgICAgICAgICAgICAgID0+ICJ0ZXh0L3BsYWluIiwKICAgICAgICAgICAgT3duZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gIkFnZW50MSIsCiAgICAgICAgICAgIFByaW9yaXR5ICAgICAgICAgICAgICAgICAgICAgICAgID0+ICIzIG5vcm1hbCIsCiAgICAgICAgICAgIFByaW9yaXR5Q29sb3IgICAgICAgICAgICAgICAgICAgID0+ICIjY2RjZGNkIiwKICAgICAgICAgICAgUXVldWUgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gIkp1bmsiLAogICAgICAgICAgICBSZXNwb25zaWJsZSAgICAgICAgICAgICAgICAgICAgICA9PiAiQWdlbnQxIiwKICAgICAgICAgICAgU2VuZGVyVHlwZSAgICAgICAgICAgICAgICAgICAgICAgPT4gImN1c3RvbWVyIiwKICAgICAgICAgICAgU29sdXRpb25UaW1lICAgICAgICAgICAgICAgICAgICAgPT4gLTEyOTYsCiAgICAgICAgICAgIFNvbHV0aW9uVGltZURlc3RpbmF0aW9uRGF0ZSAgICAgID0+ICIyMDEwLTA2LTIzIDExOjUxOjE0IiwKICAgICAgICAgICAgU29sdXRpb25UaW1lRGVzdGluYXRpb25UaW1lICAgICAgPT4gMTI3NzMxMTg3NCwKICAgICAgICAgICAgU29sdXRpb25UaW1lRXNjYWxhdGlvbiAgICAgICAgICAgPT4gMSwKICAgICAgICAgICAgU29sdXRpb25UaW1lV29ya2luZ1RpbWUgICAgICAgICAgPT4gLTEyNjAsCiAgICAgICAgICAgIFN0YXRlICAgICAgICAgICAgICAgICAgICAgICAgICAgID0+ICJvcGVuIiwKICAgICAgICAgICAgU3ViamVjdCAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gIkVzY2FsYXRpb24gVGVzdCIsCiAgICAgICAgICAgIFRpY2tldElEICAgICAgICAgICAgICAgICAgICAgICAgID0+IDE3NiwKICAgICAgICAgICAgVGlja2V0TnVtYmVyICAgICAgICAgICAgICAgICAgICAgPT4gMjAxMDA2MjMxMDAwMDAxNSwKICAgICAgICAgICAgVGl0bGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gIkVzY2FsYXRpb24gVGVzdCIsCiAgICAgICAgICAgIFRvICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0+ICJKdW5rIiwKICAgICAgICAgICAgVHlwZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gIkluY2lkZW50IiwKICAgICAgICAgICAgVW50aWxUaW1lICAgICAgICAgICAgICAgICAgICAgICAgPT4gMCwKICAgICAgICAgICAgVXBkYXRlVGltZSAgICAgICAgICAgICAgICAgICAgICAgPT4gLTEyOTUsCiAgICAgICAgICAgIFVwZGF0ZVRpbWVEZXN0aW5hdGlvbkRhdGUgICAgICAgID0+ICIyMDEwLTA2LTIzIDExOjUxOjE1IiwKICAgICAgICAgICAgVXBkYXRlVGltZURlc3RpbmF0aW9uVGltZSAgICAgICAgPT4gMTI3NzMxMTg3NSwKICAgICAgICAgICAgVXBkYXRlVGltZUVzY2FsYXRpb24gICAgICAgICAgICAgPT4gMSwKICAgICAgICAgICAgVXBkYXRlVGltZVdvcmtpbmdUaW1lICAgICAgICAgICAgPT4gLTEyNjAsCiAgICAgICAgICAgIFNlZW4gICAgICAgICAgICAgICAgICAgICAgICAgICAgID0+IDEsCiAgICAgICAgfSwKICAgICk7Cgo9Y3V0CgpzdWIgRXNjYWxhdGlvblZpZXcgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAoICRTZWMsICRNaW4sICRIb3VyLCAkRGF5LCAkTW9udGgsICRZZWFyICkgPSAkU2VsZi0+e1RpbWVPYmplY3R9LT5TeXN0ZW1UaW1lMkRhdGUoCiAgICAgICAgU3lzdGVtVGltZSA9PiAkU2VsZi0+e1RpbWVPYmplY3R9LT5TeXN0ZW1UaW1lKCkgKyA2MCAqIDYwICogMjQgKiA3LAogICAgKTsKICAgIG15ICRUaW1lU3RhbXBOZXh0V2VlayA9ICIkWWVhci0kTW9udGgtJERheSAyMzo1OTo1OSI7CgogICAgKCAkU2VjLCAkTWluLCAkSG91ciwgJERheSwgJE1vbnRoLCAkWWVhciApID0gJFNlbGYtPntUaW1lT2JqZWN0fS0+U3lzdGVtVGltZTJEYXRlKAogICAgICAgIFN5c3RlbVRpbWUgPT4gJFNlbGYtPntUaW1lT2JqZWN0fS0+U3lzdGVtVGltZSgpICsgNjAgKiA2MCAqIDI0LAogICAgKTsKICAgIG15ICRUaW1lU3RhbXBUb21vcnJvdyA9ICIkWWVhci0kTW9udGgtJERheSAyMzo1OTo1OSI7CgogICAgKCAkU2VjLCAkTWluLCAkSG91ciwgJERheSwgJE1vbnRoLCAkWWVhciApID0gJFNlbGYtPntUaW1lT2JqZWN0fS0+U3lzdGVtVGltZTJEYXRlKAogICAgICAgIFN5c3RlbVRpbWUgPT4gJFNlbGYtPntUaW1lT2JqZWN0fS0+U3lzdGVtVGltZSgpLAogICAgKTsKICAgIG15ICRUaW1lU3RhbXBUb2RheSA9ICIkWWVhci0kTW9udGgtJERheSAyMzo1OTo1OSI7CgogICAgIyBkZWZpbmUgZmlsdGVyCiAgICBteSAlRmlsdGVycyA9ICgKICAgICAgICBUb2RheSA9PiB7CiAgICAgICAgICAgIE5hbWUgICA9PiAnVG9kYXknLAogICAgICAgICAgICBQcmlvICAgPT4gMTAwMCwKICAgICAgICAgICAgU2VhcmNoID0+IHsKICAgICAgICAgICAgICAgIFRpY2tldEVzY2FsYXRpb25UaW1lT2xkZXJEYXRlID0+ICRUaW1lU3RhbXBUb2RheSwKICAgICAgICAgICAgICAgIE9yZGVyQnkgICAgICAgICAgICAgICAgICAgICAgID0+ICRQYXJhbXtPcmRlckJ5fSwKICAgICAgICAgICAgICAgIFNvcnRCeSAgICAgICAgICAgICAgICAgICAgICAgID0+ICRQYXJhbXtTb3J0Qnl9LAogICAgICAgICAgICAgICAgVXNlcklEICAgICAgICAgICAgICAgICAgICAgICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgICAgICBQZXJtaXNzaW9uICAgICAgICAgICAgICAgICAgICA9PiAncm8nLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgVG9tb3Jyb3cgPT4gewogICAgICAgICAgICBOYW1lICAgPT4gJ1RvbW9ycm93JywKICAgICAgICAgICAgUHJpbyAgID0+IDIwMDAsCiAgICAgICAgICAgIFNlYXJjaCA9PiB7CiAgICAgICAgICAgICAgICBUaWNrZXRFc2NhbGF0aW9uVGltZU9sZGVyRGF0ZSA9PiAkVGltZVN0YW1wVG9tb3Jyb3csCiAgICAgICAgICAgICAgICBPcmRlckJ5ICAgICAgICAgICAgICAgICAgICAgICA9PiAkUGFyYW17T3JkZXJCeX0sCiAgICAgICAgICAgICAgICBTb3J0QnkgICAgICAgICAgICAgICAgICAgICAgICA9PiAkUGFyYW17U29ydEJ5fSwKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgICAgICAgICAgICAgICAgICAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICAgICAgUGVybWlzc2lvbiAgICAgICAgICAgICAgICAgICAgPT4gJ3JvJywKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIE5leHRXZWVrID0+IHsKICAgICAgICAgICAgTmFtZSAgID0+ICdOZXh0IFdlZWsnLAogICAgICAgICAgICBQcmlvICAgPT4gMzAwMCwKICAgICAgICAgICAgU2VhcmNoID0+IHsKICAgICAgICAgICAgICAgIFRpY2tldEVzY2FsYXRpb25UaW1lT2xkZXJEYXRlID0+ICRUaW1lU3RhbXBOZXh0V2VlaywKICAgICAgICAgICAgICAgIE9yZGVyQnkgICAgICAgICAgICAgICAgICAgICAgID0+ICRQYXJhbXtPcmRlckJ5fSwKICAgICAgICAgICAgICAgIFNvcnRCeSAgICAgICAgICAgICAgICAgICAgICAgID0+ICRQYXJhbXtTb3J0Qnl9LAogICAgICAgICAgICAgICAgVXNlcklEICAgICAgICAgICAgICAgICAgICAgICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgICAgICBQZXJtaXNzaW9uICAgICAgICAgICAgICAgICAgICA9PiAncm8nLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICApOwoKICAgICMgZG8gc2hvd24gdGlja2V0cyBsb29rdXAKICAgIG15ICRMaW1pdCA9ICRQYXJhbXtMaW1pdH0gfHwgMTAwOwogICAgaWYgKCAkUGFyYW17RmlsdGVyfSApIHsKICAgICAgICBteSBAVmlld2FibGVUaWNrZXRzID0gJFNlbGYtPntUaWNrZXRPYmplY3R9LT5UaWNrZXRTZWFyY2goCiAgICAgICAgICAgICV7ICRGaWx0ZXJzeyAkUGFyYW17RmlsdGVyfSB9LT57U2VhcmNofSB9LAogICAgICAgICAgICBMaW1pdCAgPT4gJExpbWl0LAogICAgICAgICAgICBSZXN1bHQgPT4gJ0FSUkFZJywKICAgICAgICApOwogICAgICAgIG15IEBMaXN0OwogICAgICAgIGZvciBteSAkVGlja2V0SUQgKEBWaWV3YWJsZVRpY2tldHMpIHsKICAgICAgICAgICAgbmV4dCBpZiAhJFRpY2tldElEOwogICAgICAgICAgICBteSAlQXJ0aWNsZSA9ICRTZWxmLT5UaWNrZXRMaXN0KCBUaWNrZXRJRCA9PiAkVGlja2V0SUQsIFVzZXJJRCA9PiAkUGFyYW17VXNlcklEfSApOwogICAgICAgICAgICBuZXh0IGlmICElQXJ0aWNsZTsKICAgICAgICAgICAgcHVzaCBATGlzdCwgXCVBcnRpY2xlOwogICAgICAgIH0KICAgICAgICByZXR1cm4gQExpc3Q7CiAgICB9CgogICAgIyBkbyBuYXYgYmFyIGxvb2t1cAogICAgbXkgQFN0YXRlczsKICAgIGZvciBteSAkRmlsdGVyICggc29ydCBrZXlzICVGaWx0ZXJzICkgewogICAgICAgIG15ICRDb3VudCA9ICRTZWxmLT57VGlja2V0T2JqZWN0fS0+VGlja2V0U2VhcmNoKAogICAgICAgICAgICAleyAkRmlsdGVyc3skRmlsdGVyfS0+e1NlYXJjaH0gfSwKICAgICAgICAgICAgUmVzdWx0ID0+ICdDT1VOVCcsCiAgICAgICAgKTsKICAgICAgICBteSAkQ291bnROZXcgPSAkU2VsZi0+e1RpY2tldE9iamVjdH0tPlRpY2tldFNlYXJjaCgKICAgICAgICAgICAgJXsgJEZpbHRlcnN7JEZpbHRlcn0tPntTZWFyY2h9IH0sCiAgICAgICAgICAgIFJlc3VsdCAgICAgPT4gJ0NPVU5UJywKICAgICAgICAgICAgVGlja2V0RmxhZyA9PiB7CiAgICAgICAgICAgICAgICBTZWVuID0+IDEsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIFRpY2tldEZsYWdVc2VySUQgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgKTsKICAgICAgICAkQ291bnROZXcgPSAkQ291bnQgLSAkQ291bnROZXc7CgogICAgICAgIHB1c2ggQFN0YXRlcywgewogICAgICAgICAgICBTdGF0ZVR5cGUgICAgICAgICAgICAgICAgICAgICAgPT4gJEZpbHRlciwKICAgICAgICAgICAgRmlsdGVyTmFtZSAgICAgICAgICAgICAgICAgICAgID0+ICRGaWx0ZXJzeyRGaWx0ZXJ9LT57TmFtZX0sCiAgICAgICAgICAgIE51bWJlck9mVGlja2V0cyAgICAgICAgICAgICAgICA9PiAkQ291bnQsCiAgICAgICAgICAgIE51bWJlck9mVGlja2V0c1dpdGhOZXdNZXNzYWdlcyA9PiAkQ291bnROZXcsCiAgICAgICAgfTsKICAgIH0KICAgIHJldHVybiBAU3RhdGVzOwp9Cgo9aXRlbSBTdGF0dXNWaWV3KCkKCkdldCB0aGUgbnVtYmVyIG9mIHRpY2tldHMgYnkgc3RhdHVzIChvcGVuIG9yIGNsb3NlZCkgb3IgbGFzdCBjdXN0b21lciBhcnRpY2xlIGluZm9ybWF0aW9uIGZyb20gZWFjaAp0aWNrZXQgaW4gZWFjaCBzdGF0dXMgd2l0aGluIGFuIHNwZWNpZmllZCBmaWx0ZXIsIGlmIHRoZSAiRmlsdGVyIiBhcmd1bWVudCBpcyBzcGVjaWZpZWQuCgogICAgbXkgQFJlc3VsdCA9ICRpUGhvbmVPYmplY3QtPlN0YXR1c1ZpZXcoCiAgICAgICAgVXNlcklEICA9PiAxLAoKICAgICAgICAjIE9yZGVyQnkgYW5kIFNvcnRCeSAob3B0aW9uYWwpCiAgICAgICAgT3JkZXJCeSA9PiAnRG93bicsICAjIERvd258VXAKICAgICAgICBTb3J0QnkgID0+ICdBZ2UnLCAgICMgT3duZXJ8UmVzcG9uc2libGV8Q3VzdG9tZXJJRHxTdGF0ZXxUaWNrZXROdW1iZXJ8UXVldWV8UHJpb3JpdHl8QWdlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIFR5cGV8TG9ja3xUaXRsZXxTZXJ2aWNlfFNMQXxQZW5kaW5nVGltZXxFc2NhbGF0aW9uVGltZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBFc2NhbGF0aW9uVXBkYXRlVGltZXxFc2NhbGF0aW9uUmVzcG9uc2VUaW1lfEVzY2FsYXRpb25Tb2x1dGlvblRpbWUKICAgICk7CgogICAgI2EgcmVzdWx0IGNvdWxkIGJlCgogICAgQFJlc3VsdCA9ICgKICAgICAgICB7CiAgICAgICAgICAgIFN0YXRlVHlwZSAgICAgICAgICAgICAgICAgICAgICA9PiAiT3BlbiIsCiAgICAgICAgICAgIE51bWJlck9mVGlja2V0cyAgICAgICAgICAgICAgICA9PiAyLAogICAgICAgICAgICBOdW1iZXJPZlRpY2tldHNXaXRoTmV3TWVzc2FnZXMgPT4gMCwKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICAgU3RhdGVUeXBlICAgICAgICAgICAgICAgICAgICAgID0+ICJDbG9zZWQiLAogICAgICAgICAgICBOdW1iZXJPZlRpY2tldHMgICAgICAgICAgICAgICAgPT4gMSwKICAgICAgICAgICAgTnVtYmVyT2ZUaWNrZXRzV2l0aE5ld01lc3NhZ2VzID0+IDAsCiAgICAgICAgfSwKICAgICk7CgogICAgbXkgQFJlc3VsdCA9ICRpUGhvbmVPYmplY3QtPlN0YXR1c1ZpZXcoCiAgICAgICAgVXNlcklEICA9PiAxLAogICAgICAgIEZpbHRlciAgPT4gIk9wZW4iLAoKICAgICAgICAjTGltaXQgKG9wdGlvbmFsKSBzZXQgdG8gMTAwIGJ5IGRlZmF1bHQsIGlmIG5vdCBzcGNpZmllZAogICAgICAgIExpbWl0ICAgPT4gNTAsCgogICAgICAgICMgT3JkZXJCeSBhbmQgU29ydEJ5IChvcHRpb25hbCkKICAgICAgICBPcmRlckJ5ID0+ICdEb3duJywgICMgRG93bnxVcAogICAgICAgIFNvcnRCeSAgPT4gJ0FnZScsICAgIyBPd25lcnxSZXNwb25zaWJsZXxDdXN0b21lcklEfFN0YXRlfFRpY2tldE51bWJlcnxRdWV1ZXxQcmlvcml0eXxBZ2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgVHlwZXxMb2NrfFRpdGxlfFNlcnZpY2V8U0xBfFBlbmRpbmdUaW1lfEVzY2FsYXRpb25UaW1lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIEVzY2FsYXRpb25VcGRhdGVUaW1lfEVzY2FsYXRpb25SZXNwb25zZVRpbWV8RXNjYWxhdGlvblNvbHV0aW9uVGltZQogICAgKTsKCiAgICAjYSByZXN1bHQgY291bGQgYmUKCiAgICBAUmVzdWx0ID0gKAogICAgICAgIHsKICAgICAgICAgICAgIEFnZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0+IDE1OTYsCiAgICAgICAgICAgIEFydGljbGVJRCAgICAgICAgICAgICAgICAgICAgICAgID0+IDkyMywKICAgICAgICAgICAgQXJ0aWNsZVR5cGUgICAgICAgICAgICAgICAgICAgICAgPT4gInBob25lIiwKICAgICAgICAgICAgQm9keSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gIlRoaXMgaXMgYW4gb3BlbiB0aWNrZXQiLAogICAgICAgICAgICBDaGFyc2V0ICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAidXRmLTgiLAogICAgICAgICAgICBDb250ZW50Q2hhcnNldCAgICAgICAgICAgICAgICAgICA9PiAidXRmLTgiLAogICAgICAgICAgICBDb250ZW50VHlwZSAgICAgICAgICAgICAgICAgICAgICA9PiAidGV4dC9wbGFpbjsiLAogICAgICAgICAgICBjaGFyc2V0ICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAidXRmLTgiLAogICAgICAgICAgICBDcmVhdGVkICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAiMjAxMC0wNi0yMyAxMTo0NjoxNSIsCiAgICAgICAgICAgIENyZWF0ZWRCeSAgICAgICAgICAgICAgICAgICAgICAgID0+IDEsCiAgICAgICAgICAgIEZpcnN0UmVzcG9uc2VUaW1lICAgICAgICAgICAgICAgID0+IC0xMjk2LAogICAgICAgICAgICBGaXJzdFJlc3BvbnNlVGltZURlc3RpbmF0aW9uRGF0ZSA9PiAiMjAxMC0wNi0yMyAxMTo1MToxNCIsCiAgICAgICAgICAgIEZpcnN0UmVzcG9uc2VUaW1lRGVzdGluYXRpb25UaW1lID0+IDEyNzczMTE4NzQsCiAgICAgICAgICAgIEZpcnN0UmVzcG9uc2VUaW1lRXNjYWxhdGlvbiAgICAgID0+IDEsCiAgICAgICAgICAgIEZpcnN0UmVzcG9uc2VUaW1lV29ya2luZ1RpbWUgICAgID0+IC0xMjYwLAogICAgICAgICAgICBGcm9tICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAiY3VzdG9tZXJAb3Rycy5vcmciLAogICAgICAgICAgICBJbmNvbWluZ1RpbWUgICAgICAgICAgICAgICAgICAgICA9PiAxMjc3MzExNTc1LAogICAgICAgICAgICBMb2NrICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAidW5sb2NrIiwKICAgICAgICAgICAgTWltZVR5cGUgICAgICAgICAgICAgICAgICAgICAgICAgPT4gInRleHQvcGxhaW4iLAogICAgICAgICAgICBPd25lciAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAiQWdlbnQxIiwKICAgICAgICAgICAgUHJpb3JpdHkgICAgICAgICAgICAgICAgICAgICAgICAgPT4gIjMgbm9ybWFsIiwKICAgICAgICAgICAgUHJpb3JpdHlDb2xvciAgICAgICAgICAgICAgICAgICAgPT4gIiNjZGNkY2QiLAogICAgICAgICAgICBRdWV1ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAiSnVuayIsCiAgICAgICAgICAgIFJlc3BvbnNpYmxlICAgICAgICAgICAgICAgICAgICAgID0+ICJBZ2VudDEiLAogICAgICAgICAgICBTZW5kZXJUeXBlICAgICAgICAgICAgICAgICAgICAgICA9PiAiY3VzdG9tZXIiLAogICAgICAgICAgICBTb2x1dGlvblRpbWUgICAgICAgICAgICAgICAgICAgICA9PiAtMTI5NiwKICAgICAgICAgICAgU29sdXRpb25UaW1lRGVzdGluYXRpb25EYXRlICAgICAgPT4gIjIwMTAtMDYtMjMgMTE6NTE6MTQiLAogICAgICAgICAgICBTb2x1dGlvblRpbWVEZXN0aW5hdGlvblRpbWUgICAgICA9PiAxMjc3MzExODc0LAogICAgICAgICAgICBTb2x1dGlvblRpbWVFc2NhbGF0aW9uICAgICAgICAgICA9PiAxLAogICAgICAgICAgICBTb2x1dGlvblRpbWVXb3JraW5nVGltZSAgICAgICAgICA9PiAtMTI2MCwKICAgICAgICAgICAgU3RhdGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gIm9wZW4iLAogICAgICAgICAgICBTdWJqZWN0ICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAiT3BlbiBUaWNrZXQgVGVzdCIsCiAgICAgICAgICAgIFRpY2tldElEICAgICAgICAgICAgICAgICAgICAgICAgID0+IDE3NiwKICAgICAgICAgICAgVGlja2V0TnVtYmVyICAgICAgICAgICAgICAgICAgICAgPT4gMjAxMDA2MjMxMDAwMDAxNSwKICAgICAgICAgICAgVGl0bGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gIk9wZW4gVGlja2V0IFRlc3QiLAogICAgICAgICAgICBUbyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAiSnVuayIsCiAgICAgICAgICAgIFR5cGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0+ICJJbmNpZGVudCIsCiAgICAgICAgICAgIFVudGlsVGltZSAgICAgICAgICAgICAgICAgICAgICAgID0+IDAsCiAgICAgICAgICAgIFVwZGF0ZVRpbWUgICAgICAgICAgICAgICAgICAgICAgID0+IC0xMjk1LAogICAgICAgICAgICBVcGRhdGVUaW1lRGVzdGluYXRpb25EYXRlICAgICAgICA9PiAiMjAxMC0wNi0yMyAxMTo1MToxNSIsCiAgICAgICAgICAgIFVwZGF0ZVRpbWVEZXN0aW5hdGlvblRpbWUgICAgICAgID0+IDEyNzczMTE4NzUsCiAgICAgICAgICAgIFVwZGF0ZVRpbWVFc2NhbGF0aW9uICAgICAgICAgICAgID0+IDEsCiAgICAgICAgICAgIFVwZGF0ZVRpbWVXb3JraW5nVGltZSAgICAgICAgICAgID0+IC0xMjYwLAogICAgICAgICAgICBTZWVuICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAxLAogICAgICAgIH0sCiAgICApOwoKPWN1dAoKc3ViIFN0YXR1c1ZpZXcgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGRlZmluZSBmaWx0ZXIKICAgIG15ICVGaWx0ZXJzID0gKAogICAgICAgIE9wZW4gPT4gewogICAgICAgICAgICBOYW1lICAgPT4gJ09wZW4nLAogICAgICAgICAgICBQcmlvICAgPT4gMTAwMCwKICAgICAgICAgICAgU2VhcmNoID0+IHsKICAgICAgICAgICAgICAgIFN0YXRlVHlwZSAgPT4gJ09wZW4nLAogICAgICAgICAgICAgICAgT3JkZXJCeSAgICA9PiAkUGFyYW17T3JkZXJCeX0sCiAgICAgICAgICAgICAgICBTb3J0QnkgICAgID0+ICRQYXJhbXtTb3J0Qnl9LAogICAgICAgICAgICAgICAgVXNlcklEICAgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgICAgIFBlcm1pc3Npb24gPT4gJ3JvJywKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIENsb3NlZCA9PiB7CiAgICAgICAgICAgIE5hbWUgICA9PiAnQ2xvc2VkJywKICAgICAgICAgICAgUHJpbyAgID0+IDEwMDEsCiAgICAgICAgICAgIFNlYXJjaCA9PiB7CiAgICAgICAgICAgICAgICBTdGF0ZVR5cGUgID0+ICdDbG9zZWQnLAogICAgICAgICAgICAgICAgT3JkZXJCeSAgICA9PiAkUGFyYW17T3JkZXJCeX0sCiAgICAgICAgICAgICAgICBTb3J0QnkgICAgID0+ICRQYXJhbXtTb3J0Qnl9LAogICAgICAgICAgICAgICAgVXNlcklEICAgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgICAgIFBlcm1pc3Npb24gPT4gJ3JvJywKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgKTsKCiAgICAjIGRvIHNob3duIHRpY2tldHMgbG9va3VwCiAgICBteSAkTGltaXQgPSAkUGFyYW17TGltaXR9IHx8IDEwMDsKICAgIGlmICggJFBhcmFte0ZpbHRlcn0gKSB7CiAgICAgICAgbXkgQFZpZXdhYmxlVGlja2V0cyA9ICRTZWxmLT57VGlja2V0T2JqZWN0fS0+VGlja2V0U2VhcmNoKAogICAgICAgICAgICAleyAkRmlsdGVyc3sgJFBhcmFte0ZpbHRlcn0gfS0+e1NlYXJjaH0gfSwKICAgICAgICAgICAgTGltaXQgID0+ICRMaW1pdCwKICAgICAgICAgICAgUmVzdWx0ID0+ICdBUlJBWScsCiAgICAgICAgKTsKICAgICAgICBteSBATGlzdDsKICAgICAgICBmb3IgbXkgJFRpY2tldElEIChAVmlld2FibGVUaWNrZXRzKSB7CiAgICAgICAgICAgIG5leHQgaWYgISRUaWNrZXRJRDsKICAgICAgICAgICAgbXkgJUFydGljbGUgPSAkU2VsZi0+VGlja2V0TGlzdCggVGlja2V0SUQgPT4gJFRpY2tldElELCBVc2VySUQgPT4gJFBhcmFte1VzZXJJRH0gKTsKICAgICAgICAgICAgbmV4dCBpZiAhJUFydGljbGU7CiAgICAgICAgICAgIHB1c2ggQExpc3QsIFwlQXJ0aWNsZTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIEBMaXN0OwogICAgfQoKICAgICMgZG8gbmF2IGJhciBsb29rdXAKICAgIG15IEBTdGF0ZXM7CiAgICBmb3IgbXkgJEZpbHRlciAoIHNvcnQga2V5cyAlRmlsdGVycyApIHsKICAgICAgICBteSAkQ291bnQgPSAkU2VsZi0+e1RpY2tldE9iamVjdH0tPlRpY2tldFNlYXJjaCgKICAgICAgICAgICAgJXsgJEZpbHRlcnN7JEZpbHRlcn0tPntTZWFyY2h9IH0sCiAgICAgICAgICAgIFJlc3VsdCA9PiAnQ09VTlQnLAogICAgICAgICk7CiAgICAgICAgbXkgJENvdW50TmV3ID0gJFNlbGYtPntUaWNrZXRPYmplY3R9LT5UaWNrZXRTZWFyY2goCiAgICAgICAgICAgICV7ICRGaWx0ZXJzeyRGaWx0ZXJ9LT57U2VhcmNofSB9LAogICAgICAgICAgICBSZXN1bHQgICAgID0+ICdDT1VOVCcsCiAgICAgICAgICAgIFRpY2tldEZsYWcgPT4gewogICAgICAgICAgICAgICAgU2VlbiA9PiAxLAogICAgICAgICAgICB9LAogICAgICAgICAgICBUaWNrZXRGbGFnVXNlcklEID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICk7CiAgICAgICAgJENvdW50TmV3ID0gJENvdW50IC0gJENvdW50TmV3OwoKICAgICAgICBwdXNoIEBTdGF0ZXMsIHsKICAgICAgICAgICAgU3RhdGVUeXBlICAgICAgICAgICAgICAgICAgICAgID0+ICRGaWx0ZXIsCiAgICAgICAgICAgIEZpbHRlck5hbWUgICAgICAgICAgICAgICAgICAgICA9PiAkRmlsdGVyc3skRmlsdGVyfS0+e05hbWV9LAogICAgICAgICAgICBOdW1iZXJPZlRpY2tldHMgICAgICAgICAgICAgICAgPT4gJENvdW50LAogICAgICAgICAgICBOdW1iZXJPZlRpY2tldHNXaXRoTmV3TWVzc2FnZXMgPT4gJENvdW50TmV3LAogICAgICAgIH07CiAgICB9CiAgICByZXR1cm4gQFN0YXRlczsKfQoKPWl0ZW0gTG9ja2VkVmlldygpCgpHZXQgdGhlIG51bWJlciBvZiBsb2NrZWQgdGlja2V0cyBieSBzdGF0dXMgdHlwZSAoYWxsLCBuZXcsIHJlbWluZGVyLCByZW1pbmRlciByZWFjaGVkICkgb3IgbGFzdApjdXN0b21lciBhcnRpY2xlIGluZm9ybWF0aW9uIGZyb20gZWFjaCBsb2NrZWQgdGlja2V0IGluIGVhY2ggc3RhdHVzIHdpdGhpbiBhbiBzcGVjaWZpZWQgZmlsdGVyLCBpZgp0aGUgIkZpbHRlciIgYXJndW1lbnQgaXMgc3BlY2lmaWVkLgoKICAgIG15IEBSZXN1bHQgPSAkaVBob25lT2JqZWN0LT5Mb2NrZWRWaWV3KAogICAgICAgIFVzZXJJRCAgPT4gMSwKCiAgICAgICAgIyBPcmRlckJ5IGFuZCBTb3J0QnkgKG9wdGlvbmFsKQogICAgICAgIE9yZGVyQnkgPT4gJ0Rvd24nLCAgIyBEb3dufFVwCiAgICAgICAgU29ydEJ5ICA9PiAnQWdlJywgICAjIE93bmVyfFJlc3BvbnNpYmxlfEN1c3RvbWVySUR8U3RhdGV8VGlja2V0TnVtYmVyfFF1ZXVlfFByaW9yaXR5fEFnZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBUeXBlfExvY2t8VGl0bGV8U2VydmljZXxTTEF8UGVuZGluZ1RpbWV8RXNjYWxhdGlvblRpbWUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgRXNjYWxhdGlvblVwZGF0ZVRpbWV8RXNjYWxhdGlvblJlc3BvbnNlVGltZXxFc2NhbGF0aW9uU29sdXRpb25UaW1lCiAgICApOwoKICAgICNhIHJlc3VsdCBjb3VsZCBiZQoKICAgIEBSZXN1bHQgPSAoCiAgICAgICAgewogICAgICAgICAgICBTdGF0ZVR5cGUgICAgICAgICAgICAgICAgICAgICAgPT4gIkFsbCIsCiAgICAgICAgICAgIE51bWJlck9mVGlja2V0cyAgICAgICAgICAgICAgICA9PiAyLAogICAgICAgICAgICBOdW1iZXJPZlRpY2tldHNXaXRoTmV3TWVzc2FnZXMgPT4gMCwKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICAgU3RhdGVUeXBlICAgICAgICAgICAgICAgICAgICAgID0+ICJOZXcsCiAgICAgICAgICAgIE51bWJlck9mVGlja2V0cyAgICAgICAgICAgICAgICA9PiAxLAogICAgICAgICAgICBOdW1iZXJPZlRpY2tldHNXaXRoTmV3TWVzc2FnZXMgPT4gMCwKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICAgU3RhdGVUeXBlICAgICAgICAgICAgICAgICAgICAgID0+ICJSZW1pbmRlciwKICAgICAgICAgICAgTnVtYmVyT2ZUaWNrZXRzICAgICAgICAgICAgICAgID0+IDAsCiAgICAgICAgICAgIE51bWJlck9mVGlja2V0c1dpdGhOZXdNZXNzYWdlcyA9PiAwLAogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgICBTdGF0ZVR5cGUgICAgICAgICAgICAgICAgICAgICAgPT4gIlJlbWluZGVyUmVhY2hlZCwKICAgICAgICAgICAgTnVtYmVyT2ZUaWNrZXRzICAgICAgICAgICAgICAgID0+IDEsCiAgICAgICAgICAgIE51bWJlck9mVGlja2V0c1dpdGhOZXdNZXNzYWdlcyA9PiAwLAogICAgICAgIH0sCiAgICApOwoKICAgIG15IEBSZXN1bHQgPSAkaVBob25lT2JqZWN0LT5Mb2NrZWRWaWV3KAogICAgICAgIFVzZXJJRCAgPT4gMSwKICAgICAgICBGaWx0ZXIgID0+ICJOZXciLAoKICAgICAgICAjTGltaXQgKG9wdGlvbmFsKSBzZXQgdG8gMTAwIGJ5IGRlZmF1bHQsIGlmIG5vdCBzcGNpZmllZAogICAgICAgIExpbWl0ICAgPT4gNTAsCgogICAgICAgICMgT3JkZXJCeSBhbmQgU29ydEJ5IChvcHRpb25hbCkKICAgICAgICBPcmRlckJ5ID0+ICdEb3duJywgICMgRG93bnxVcAogICAgICAgIFNvcnRCeSAgPT4gJ0FnZScsICAgIyBPd25lcnxSZXNwb25zaWJsZXxDdXN0b21lcklEfFN0YXRlfFRpY2tldE51bWJlcnxRdWV1ZXxQcmlvcml0eXxBZ2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgVHlwZXxMb2NrfFRpdGxlfFNlcnZpY2V8U0xBfFBlbmRpbmdUaW1lfEVzY2FsYXRpb25UaW1lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIEVzY2FsYXRpb25VcGRhdGVUaW1lfEVzY2FsYXRpb25SZXNwb25zZVRpbWV8RXNjYWxhdGlvblNvbHV0aW9uVGltZQogICAgKTsKCiAgICAjYSByZXN1bHQgY291bGQgYmUKCiAgICBAUmVzdWx0ID0gKAogICAgICAgIHsKICAgICAgICAgICAgQWdlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gMTU5NiwKICAgICAgICAgICAgQXJ0aWNsZUlEICAgICAgICAgICAgICAgICAgICAgICAgPT4gOTIzLAogICAgICAgICAgICBBcnRpY2xlVHlwZSAgICAgICAgICAgICAgICAgICAgICA9PiAicGhvbmUiLAogICAgICAgICAgICBCb2R5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAiVGhpcyBpcyBhbiBvcGVuIHRpY2tldCIsCiAgICAgICAgICAgIENoYXJzZXQgICAgICAgICAgICAgICAgICAgICAgICAgID0+ICJ1dGYtOCIsCiAgICAgICAgICAgIENvbnRlbnRDaGFyc2V0ICAgICAgICAgICAgICAgICAgID0+ICJ1dGYtOCIsCiAgICAgICAgICAgIENvbnRlbnRUeXBlICAgICAgICAgICAgICAgICAgICAgID0+ICJ0ZXh0L3BsYWluOyIsCiAgICAgICAgICAgIGNoYXJzZXQgICAgICAgICAgICAgICAgICAgICAgICAgID0+ICJ1dGYtOCIsCiAgICAgICAgICAgIENyZWF0ZWQgICAgICAgICAgICAgICAgICAgICAgICAgID0+ICIyMDEwLTA2LTIzIDExOjQ2OjE1IiwKICAgICAgICAgICAgQ3JlYXRlZEJ5ICAgICAgICAgICAgICAgICAgICAgICAgPT4gMSwKICAgICAgICAgICAgRmlyc3RSZXNwb25zZVRpbWUgICAgICAgICAgICAgICAgPT4gLTEyOTYsCiAgICAgICAgICAgIEZpcnN0UmVzcG9uc2VUaW1lRGVzdGluYXRpb25EYXRlID0+ICIyMDEwLTA2LTIzIDExOjUxOjE0IiwKICAgICAgICAgICAgRmlyc3RSZXNwb25zZVRpbWVEZXN0aW5hdGlvblRpbWUgPT4gMTI3NzMxMTg3NCwKICAgICAgICAgICAgRmlyc3RSZXNwb25zZVRpbWVFc2NhbGF0aW9uICAgICAgPT4gMSwKICAgICAgICAgICAgRmlyc3RSZXNwb25zZVRpbWVXb3JraW5nVGltZSAgICAgPT4gLTEyNjAsCiAgICAgICAgICAgIEZyb20gICAgICAgICAgICAgICAgICAgICAgICAgICAgID0+ICJjdXN0b21lckBvdHJzLm9yZyIsCiAgICAgICAgICAgIEluY29taW5nVGltZSAgICAgICAgICAgICAgICAgICAgID0+IDEyNzczMTE1NzUsCiAgICAgICAgICAgIExvY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0+ICJsb2NrIiwKICAgICAgICAgICAgTWltZVR5cGUgICAgICAgICAgICAgICAgICAgICAgICAgPT4gInRleHQvcGxhaW4iLAogICAgICAgICAgICBPd25lciAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAiQWdlbnQxIiwKICAgICAgICAgICAgUHJpb3JpdHkgICAgICAgICAgICAgICAgICAgICAgICAgPT4gIjMgbm9ybWFsIiwKICAgICAgICAgICAgUHJpb3JpdHlDb2xvciAgICAgICAgICAgICAgICAgICAgPT4gIiNjZGNkY2QiLAogICAgICAgICAgICBRdWV1ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAiSnVuayIsCiAgICAgICAgICAgIFJlc3BvbnNpYmxlICAgICAgICAgICAgICAgICAgICAgID0+ICJBZ2VudDEiLAogICAgICAgICAgICBTZW5kZXJUeXBlICAgICAgICAgICAgICAgICAgICAgICA9PiAiY3VzdG9tZXIiLAogICAgICAgICAgICBTb2x1dGlvblRpbWUgICAgICAgICAgICAgICAgICAgICA9PiAtMTI5NiwKICAgICAgICAgICAgU29sdXRpb25UaW1lRGVzdGluYXRpb25EYXRlICAgICAgPT4gIjIwMTAtMDYtMjMgMTE6NTE6MTQiLAogICAgICAgICAgICBTb2x1dGlvblRpbWVEZXN0aW5hdGlvblRpbWUgICAgICA9PiAxMjc3MzExODc0LAogICAgICAgICAgICBTb2x1dGlvblRpbWVFc2NhbGF0aW9uICAgICAgICAgICA9PiAxLAogICAgICAgICAgICBTb2x1dGlvblRpbWVXb3JraW5nVGltZSAgICAgICAgICA9PiAtMTI2MCwKICAgICAgICAgICAgU3RhdGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gIm9wZW4iLAogICAgICAgICAgICBTdWJqZWN0ICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAiT3BlbiBUaWNrZXQgVGVzdCIsCiAgICAgICAgICAgIFRpY2tldElEICAgICAgICAgICAgICAgICAgICAgICAgID0+IDE3NiwKICAgICAgICAgICAgVGlja2V0TnVtYmVyICAgICAgICAgICAgICAgICAgICAgPT4gMjAxMDA2MjMxMDAwMDAxNSwKICAgICAgICAgICAgVGl0bGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gIk9wZW4gVGlja2V0IFRlc3QiLAogICAgICAgICAgICBUbyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAiSnVuayIsCiAgICAgICAgICAgIFR5cGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0+ICJJbmNpZGVudCIsCiAgICAgICAgICAgIFVudGlsVGltZSAgICAgICAgICAgICAgICAgICAgICAgID0+IDAsCiAgICAgICAgICAgIFVwZGF0ZVRpbWUgICAgICAgICAgICAgICAgICAgICAgID0+IC0xMjk1LAogICAgICAgICAgICBVcGRhdGVUaW1lRGVzdGluYXRpb25EYXRlICAgICAgICA9PiAiMjAxMC0wNi0yMyAxMTo1MToxNSIsCiAgICAgICAgICAgIFVwZGF0ZVRpbWVEZXN0aW5hdGlvblRpbWUgICAgICAgID0+IDEyNzczMTE4NzUsCiAgICAgICAgICAgIFVwZGF0ZVRpbWVFc2NhbGF0aW9uICAgICAgICAgICAgID0+IDEsCiAgICAgICAgICAgIFVwZGF0ZVRpbWVXb3JraW5nVGltZSAgICAgICAgICAgID0+IC0xMjYwLAogICAgICAgICAgICBTZWVuICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAxLCAjIG9ubHkgb24gb3RycyAzLnggZnJhbWV3b3JrCiAgICAgICAgfSwKICAgICk7Cgo9Y3V0CgpzdWIgTG9ja2VkVmlldyB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgZGVmaW5lIGZpbHRlcgogICAgbXkgJUZpbHRlcnMgPSAoCiAgICAgICAgQWxsID0+IHsKICAgICAgICAgICAgTmFtZSAgID0+ICdBbGwnLAogICAgICAgICAgICBQcmlvICAgPT4gMTAwMCwKICAgICAgICAgICAgU2VhcmNoID0+IHsKICAgICAgICAgICAgICAgIExvY2tzICAgICAgPT4gWydsb2NrJ10sCiAgICAgICAgICAgICAgICBPd25lcklEcyAgID0+IFsgJFBhcmFte1VzZXJJRH0gXSwKICAgICAgICAgICAgICAgIE9yZGVyQnkgICAgPT4gJFBhcmFte09yZGVyQnl9LAogICAgICAgICAgICAgICAgU29ydEJ5ICAgICA9PiAkUGFyYW17U29ydEJ5fSwKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgPT4gMSwKICAgICAgICAgICAgICAgIFBlcm1pc3Npb24gPT4gJ3JvJywKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIE5ldyA9PiB7CiAgICAgICAgICAgIE5hbWUgICA9PiAnTmV3IEFydGljbGUnLAogICAgICAgICAgICBQcmlvICAgPT4gMTAwMSwKICAgICAgICAgICAgU2VhcmNoID0+IHsKICAgICAgICAgICAgICAgIExvY2tzICAgICAgPT4gWydsb2NrJ10sCiAgICAgICAgICAgICAgICBPd25lcklEcyAgID0+IFsgJFBhcmFte1VzZXJJRH0gXSwKICAgICAgICAgICAgICAgIFRpY2tldEZsYWcgPT4gewogICAgICAgICAgICAgICAgICAgIFNlZW4gPT4gMSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICBUaWNrZXRGbGFnVXNlcklEID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICAgICAgT3JkZXJCeSAgICAgICAgICA9PiAkUGFyYW17T3JkZXJCeX0sCiAgICAgICAgICAgICAgICBTb3J0QnkgICAgICAgICAgID0+ICRQYXJhbXtTb3J0Qnl9LAogICAgICAgICAgICAgICAgVXNlcklEICAgICAgICAgICA9PiAxLAogICAgICAgICAgICAgICAgUGVybWlzc2lvbiAgICAgICA9PiAncm8nLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgUmVtaW5kZXIgPT4gewogICAgICAgICAgICBOYW1lICAgPT4gJ1BlbmRpbmcnLAogICAgICAgICAgICBQcmlvICAgPT4gMTAwMiwKICAgICAgICAgICAgU2VhcmNoID0+IHsKICAgICAgICAgICAgICAgIExvY2tzICAgICAgPT4gWydsb2NrJ10sCiAgICAgICAgICAgICAgICBTdGF0ZVR5cGUgID0+IFsgJ3BlbmRpbmcgcmVtaW5kZXInLCAncGVuZGluZyBhdXRvJyBdLAogICAgICAgICAgICAgICAgT3duZXJJRHMgICA9PiBbICRQYXJhbXtVc2VySUR9IF0sCiAgICAgICAgICAgICAgICBPcmRlckJ5ICAgID0+ICRQYXJhbXtPcmRlckJ5fSwKICAgICAgICAgICAgICAgIFNvcnRCeSAgICAgPT4gJFBhcmFte1NvcnRCeX0sCiAgICAgICAgICAgICAgICBVc2VySUQgICAgID0+IDEsCiAgICAgICAgICAgICAgICBQZXJtaXNzaW9uID0+ICdybycsCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICBSZW1pbmRlclJlYWNoZWQgPT4gewogICAgICAgICAgICBOYW1lICAgPT4gJ1JlbWluZGVyIFJlYWNoZWQnLAogICAgICAgICAgICBQcmlvICAgPT4gMTAwMywKICAgICAgICAgICAgU2VhcmNoID0+IHsKICAgICAgICAgICAgICAgIExvY2tzICAgICAgICAgICAgICAgICAgICAgICAgID0+IFsnbG9jayddLAogICAgICAgICAgICAgICAgU3RhdGVUeXBlICAgICAgICAgICAgICAgICAgICAgPT4gWydwZW5kaW5nIHJlbWluZGVyJ10sCiAgICAgICAgICAgICAgICBUaWNrZXRQZW5kaW5nVGltZU9sZGVyTWludXRlcyA9PiAxLAogICAgICAgICAgICAgICAgT3duZXJJRHMgICAgICAgICAgICAgICAgICAgICAgPT4gWyAkUGFyYW17VXNlcklEfSBdLAogICAgICAgICAgICAgICAgT3JkZXJCeSAgICAgICAgICAgICAgICAgICAgICAgPT4gJFBhcmFte09yZGVyQnl9LAogICAgICAgICAgICAgICAgU29ydEJ5ICAgICAgICAgICAgICAgICAgICAgICAgPT4gJFBhcmFte1NvcnRCeX0sCiAgICAgICAgICAgICAgICBVc2VySUQgICAgICAgICAgICAgICAgICAgICAgICA9PiAxLAogICAgICAgICAgICAgICAgUGVybWlzc2lvbiAgICAgICAgICAgICAgICAgICAgPT4gJ3JvJywKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgKTsKCiAgICAjIGRvIHNob3duIHRpY2tldHMgbG9va3VwCiAgICBteSAkTGltaXQgPSAkUGFyYW17TGltaXR9IHx8IDEwMDsKICAgIGlmICggJFBhcmFte0ZpbHRlcn0gKSB7CiAgICAgICAgbXkgQFZpZXdhYmxlVGlja2V0cyA9ICRTZWxmLT57VGlja2V0T2JqZWN0fS0+VGlja2V0U2VhcmNoKAogICAgICAgICAgICAleyAkRmlsdGVyc3sgJFBhcmFte0ZpbHRlcn0gfS0+e1NlYXJjaH0gfSwKICAgICAgICAgICAgTGltaXQgID0+ICRMaW1pdCwKICAgICAgICAgICAgUmVzdWx0ID0+ICdBUlJBWScsCiAgICAgICAgKTsKICAgICAgICBteSBATGlzdDsKICAgICAgICBmb3IgbXkgJFRpY2tldElEIChAVmlld2FibGVUaWNrZXRzKSB7CiAgICAgICAgICAgIG5leHQgaWYgISRUaWNrZXRJRDsKICAgICAgICAgICAgbXkgJUFydGljbGUgPSAkU2VsZi0+VGlja2V0TGlzdCggVGlja2V0SUQgPT4gJFRpY2tldElELCBVc2VySUQgPT4gJFBhcmFte1VzZXJJRH0gKTsKICAgICAgICAgICAgbmV4dCBpZiAhJUFydGljbGU7CiAgICAgICAgICAgIHB1c2ggQExpc3QsIFwlQXJ0aWNsZTsKICAgICAgICB9CgogICAgICAgIGlmICggIUBMaXN0ICkgewogICAgICAgICAgICAkU2VsZi0+e0xvZ09iamVjdH0tPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiVGhlcmUgYXJlIG5vIGxvY2tlZCB0aWNrZXRzIHVuZGVyICRQYXJhbXtGaWx0ZXJ9IGZpbHRlciAiCiAgICAgICAgICAgICAgICAgICAgLiAiY2F0ZWdvcnkiLAogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIEBMaXN0OwogICAgfQoKICAgICMgZG8gbmF2IGJhciBsb29rdXAKICAgIG15IEBTdGF0ZXM7CiAgICBmb3IgbXkgJEZpbHRlciAoIHNvcnQga2V5cyAlRmlsdGVycyApIHsKICAgICAgICBteSAkQ291bnQgPSAkU2VsZi0+e1RpY2tldE9iamVjdH0tPlRpY2tldFNlYXJjaCgKICAgICAgICAgICAgJXsgJEZpbHRlcnN7JEZpbHRlcn0tPntTZWFyY2h9IH0sCiAgICAgICAgICAgIFJlc3VsdCA9PiAnQ09VTlQnLAogICAgICAgICk7CiAgICAgICAgbXkgJENvdW50TmV3ID0gJFNlbGYtPntUaWNrZXRPYmplY3R9LT5UaWNrZXRTZWFyY2goCiAgICAgICAgICAgICV7ICRGaWx0ZXJzeyRGaWx0ZXJ9LT57U2VhcmNofSB9LAogICAgICAgICAgICBSZXN1bHQgICAgID0+ICdDT1VOVCcsCiAgICAgICAgICAgIFRpY2tldEZsYWcgPT4gewogICAgICAgICAgICAgICAgU2VlbiA9PiAxLAogICAgICAgICAgICB9LAogICAgICAgICAgICBUaWNrZXRGbGFnVXNlcklEID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICk7CiAgICAgICAgJENvdW50TmV3ID0gJENvdW50IC0gJENvdW50TmV3OwoKICAgICAgICBwdXNoIEBTdGF0ZXMsIHsKICAgICAgICAgICAgU3RhdGVUeXBlICAgICAgICAgICAgICAgICAgICAgID0+ICRGaWx0ZXIsCiAgICAgICAgICAgIEZpbHRlck5hbWUgICAgICAgICAgICAgICAgICAgICA9PiAkRmlsdGVyc3skRmlsdGVyfS0+e05hbWV9LAogICAgICAgICAgICBOdW1iZXJPZlRpY2tldHMgICAgICAgICAgICAgICAgPT4gJENvdW50LAogICAgICAgICAgICBOdW1iZXJPZlRpY2tldHNXaXRoTmV3TWVzc2FnZXMgPT4gJENvdW50TmV3LAogICAgICAgIH07CiAgICB9CiAgICByZXR1cm4gQFN0YXRlczsKfQoKPWl0ZW0gV2F0Y2hlZFZpZXcoKQoKR2V0IHRoZSBudW1iZXIgb2Ygd2F0Y2hlZCB0aWNrZXRzIGJ5IHN0YXR1cyB0eXBlIChhbGwsIG5ldywgcmVtaW5kZXIsIHJlbWluZGVyIHJlYWNoZWQgKSBvciBsYXN0CmN1c3RtZXIgYXJ0aWNsZSBpbmZvcm1hdGlvbiBmcm9tIGVhY2ggd2F0Y2hlZCB0aWNrZXQgaW4gZWFjaCBzdGF0dXMgd2l0aGluIGFuIHNwZWNpZmllZCBmaWx0ZXIsIGlmCnRoZSAiRmlsdGVyIiBhcmd1bWVudCBpcyBzcGVjaWZpZWQuCgogICAgbXkgQFJlc3VsdCA9ICRpUGhvbmVPYmplY3QtPldhdGNoZWRWaWV3KAogICAgICAgIFVzZXJJRCAgPT4gMSwKCiAgICAgICAgIyBPcmRlckJ5IGFuZCBTb3J0QnkgKG9wdGlvbmFsKQogICAgICAgIE9yZGVyQnkgPT4gJ0Rvd24nLCAgIyBEb3dufFVwCiAgICAgICAgU29ydEJ5ICA9PiAnQWdlJywgICAjIE93bmVyfFJlc3BvbnNpYmxlfEN1c3RvbWVySUR8U3RhdGV8VGlja2V0TnVtYmVyfFF1ZXVlfFByaW9yaXR5fEFnZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBUeXBlfExvY2t8VGl0bGV8U2VydmljZXxTTEF8UGVuZGluZ1RpbWV8RXNjYWxhdGlvblRpbWUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgRXNjYWxhdGlvblVwZGF0ZVRpbWV8RXNjYWxhdGlvblJlc3BvbnNlVGltZXxFc2NhbGF0aW9uU29sdXRpb25UaW1lCiAgICApOwoKICAgICNhIHJlc3VsdCBjb3VsZCBiZQoKICAgIEBSZXN1bHQgPSAoCiAgICAgICAgewogICAgICAgICAgICBTdGF0ZVR5cGUgICAgICAgICAgICAgICAgICAgICAgPT4gIkFsbCIsCiAgICAgICAgICAgIE51bWJlck9mVGlja2V0cyAgICAgICAgICAgICAgICA9PiAyLAogICAgICAgICAgICBOdW1iZXJPZlRpY2tldHNXaXRoTmV3TWVzc2FnZXMgPT4gMCwKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICAgU3RhdGVUeXBlICAgICAgICAgICAgICAgICAgICAgID0+ICJOZXcsCiAgICAgICAgICAgIE51bWJlck9mVGlja2V0cyAgICAgICAgICAgICAgICA9PiAxLAogICAgICAgICAgICBOdW1iZXJPZlRpY2tldHNXaXRoTmV3TWVzc2FnZXMgPT4gMCwKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICAgU3RhdGVUeXBlICAgICAgICAgICAgICAgICAgICAgID0+ICJSZW1pbmRlciwKICAgICAgICAgICAgTnVtYmVyT2ZUaWNrZXRzICAgICAgICAgICAgICAgID0+IDAsCiAgICAgICAgICAgIE51bWJlck9mVGlja2V0c1dpdGhOZXdNZXNzYWdlcyA9PiAwLAogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgICBTdGF0ZVR5cGUgICAgICAgICAgICAgICAgICAgICAgPT4gIlJlbWluZGVyUmVhY2hlZCwKICAgICAgICAgICAgTnVtYmVyT2ZUaWNrZXRzICAgICAgICAgICAgICAgID0+IDEsCiAgICAgICAgICAgIE51bWJlck9mVGlja2V0c1dpdGhOZXdNZXNzYWdlcyA9PiAwLAogICAgICAgIH0sCiAgICApOwoKICAgIG15IEBSZXN1bHQgPSAkaVBob25lT2JqZWN0LT5XYXRjaGVkVmlldygKICAgICAgICBVc2VySUQgID0+IDEsCiAgICAgICAgRmlsdGVyICA9PiAiTmV3IiwKCiAgICAgICAgI0xpbWl0IChvcHRpb25hbCkgc2V0IHRvIDEwMCBieSBkZWZhdWx0LCBpZiBub3Qgc3BjaWZpZWQKICAgICAgICBMaW1pdCAgID0+IDUwLAoKICAgICAgICAjIE9yZGVyQnkgYW5kIFNvcnRCeSAob3B0aW9uYWwpCiAgICAgICAgT3JkZXJCeSA9PiAnRG93bicsICAjIERvd258VXAKICAgICAgICBTb3J0QnkgID0+ICdBZ2UnLCAgICMgT3duZXJ8UmVzcG9uc2libGV8Q3VzdG9tZXJJRHxTdGF0ZXxUaWNrZXROdW1iZXJ8UXVldWV8UHJpb3JpdHl8QWdlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIFR5cGV8TG9ja3xUaXRsZXxTZXJ2aWNlfFNMQXxQZW5kaW5nVGltZXxFc2NhbGF0aW9uVGltZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBFc2NhbGF0aW9uVXBkYXRlVGltZXxFc2NhbGF0aW9uUmVzcG9uc2VUaW1lfEVzY2FsYXRpb25Tb2x1dGlvblRpbWUKICAgICk7CgogICAgI2EgcmVzdWx0IGNvdWxkIGJlCgogICAgQFJlc3VsdCA9ICgKICAgICAgICB7CiAgICAgICAgICAgIEFnZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0+IDE1OTYsCiAgICAgICAgICAgIEFydGljbGVJRCAgICAgICAgICAgICAgICAgICAgICAgID0+IDkyMywKICAgICAgICAgICAgQXJ0aWNsZVR5cGUgICAgICAgICAgICAgICAgICAgICAgPT4gInBob25lIiwKICAgICAgICAgICAgQm9keSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gIlRoaXMgaXMgYW4gb3BlbiB0aWNrZXQiLAogICAgICAgICAgICBDaGFyc2V0ICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAidXRmLTgiLAogICAgICAgICAgICBDb250ZW50Q2hhcnNldCAgICAgICAgICAgICAgICAgICA9PiAidXRmLTgiLAogICAgICAgICAgICBDb250ZW50VHlwZSAgICAgICAgICAgICAgICAgICAgICA9PiAidGV4dC9wbGFpbjsiLAogICAgICAgICAgICBjaGFyc2V0ICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAidXRmLTgiLAogICAgICAgICAgICBDcmVhdGVkICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAiMjAxMC0wNi0yMyAxMTo0NjoxNSIsCiAgICAgICAgICAgIENyZWF0ZWRCeSAgICAgICAgICAgICAgICAgICAgICAgID0+IDEsCiAgICAgICAgICAgIEZpcnN0UmVzcG9uc2VUaW1lICAgICAgICAgICAgICAgID0+IC0xMjk2LAogICAgICAgICAgICBGaXJzdFJlc3BvbnNlVGltZURlc3RpbmF0aW9uRGF0ZSA9PiAiMjAxMC0wNi0yMyAxMTo1MToxNCIsCiAgICAgICAgICAgIEZpcnN0UmVzcG9uc2VUaW1lRGVzdGluYXRpb25UaW1lID0+IDEyNzczMTE4NzQsCiAgICAgICAgICAgIEZpcnN0UmVzcG9uc2VUaW1lRXNjYWxhdGlvbiAgICAgID0+IDEsCiAgICAgICAgICAgIEZpcnN0UmVzcG9uc2VUaW1lV29ya2luZ1RpbWUgICAgID0+IC0xMjYwLAogICAgICAgICAgICBGcm9tICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAiY3VzdG9tZXJAb3Rycy5vcmciLAogICAgICAgICAgICBJbmNvbWluZ1RpbWUgICAgICAgICAgICAgICAgICAgICA9PiAxMjc3MzExNTc1LAogICAgICAgICAgICBMb2NrICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAibG9jayIsCiAgICAgICAgICAgIE1pbWVUeXBlICAgICAgICAgICAgICAgICAgICAgICAgID0+ICJ0ZXh0L3BsYWluIiwKICAgICAgICAgICAgT3duZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gIkFnZW50MSIsCiAgICAgICAgICAgIFByaW9yaXR5ICAgICAgICAgICAgICAgICAgICAgICAgID0+ICIzIG5vcm1hbCIsCiAgICAgICAgICAgIFByaW9yaXR5Q29sb3IgICAgICAgICAgICAgICAgICAgID0+ICIjY2RjZGNkIiwKICAgICAgICAgICAgUXVldWUgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gIkp1bmsiLAogICAgICAgICAgICBSZXNwb25zaWJsZSAgICAgICAgICAgICAgICAgICAgICA9PiAiQWdlbnQxIiwKICAgICAgICAgICAgU2VuZGVyVHlwZSAgICAgICAgICAgICAgICAgICAgICAgPT4gImN1c3RvbWVyIiwKICAgICAgICAgICAgU29sdXRpb25UaW1lICAgICAgICAgICAgICAgICAgICAgPT4gLTEyOTYsCiAgICAgICAgICAgIFNvbHV0aW9uVGltZURlc3RpbmF0aW9uRGF0ZSAgICAgID0+ICIyMDEwLTA2LTIzIDExOjUxOjE0IiwKICAgICAgICAgICAgU29sdXRpb25UaW1lRGVzdGluYXRpb25UaW1lICAgICAgPT4gMTI3NzMxMTg3NCwKICAgICAgICAgICAgU29sdXRpb25UaW1lRXNjYWxhdGlvbiAgICAgICAgICAgPT4gMSwKICAgICAgICAgICAgU29sdXRpb25UaW1lV29ya2luZ1RpbWUgICAgICAgICAgPT4gLTEyNjAsCiAgICAgICAgICAgIFN0YXRlICAgICAgICAgICAgICAgICAgICAgICAgICAgID0+ICJvcGVuIiwKICAgICAgICAgICAgU3ViamVjdCAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gIk9wZW4gVGlja2V0IFRlc3QiLAogICAgICAgICAgICBUaWNrZXRJRCAgICAgICAgICAgICAgICAgICAgICAgICA9PiAxNzYsCiAgICAgICAgICAgIFRpY2tldE51bWJlciAgICAgICAgICAgICAgICAgICAgID0+IDIwMTAwNjIzMTAwMDAwMTUsCiAgICAgICAgICAgIFRpdGxlICAgICAgICAgICAgICAgICAgICAgICAgICAgID0+ICJPcGVuIFRpY2tldCBUZXN0IiwKICAgICAgICAgICAgVG8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gIkp1bmsiLAogICAgICAgICAgICBUeXBlICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAiSW5jaWRlbnQiLAogICAgICAgICAgICBVbnRpbFRpbWUgICAgICAgICAgICAgICAgICAgICAgICA9PiAwLAogICAgICAgICAgICBVcGRhdGVUaW1lICAgICAgICAgICAgICAgICAgICAgICA9PiAtMTI5NSwKICAgICAgICAgICAgVXBkYXRlVGltZURlc3RpbmF0aW9uRGF0ZSAgICAgICAgPT4gIjIwMTAtMDYtMjMgMTE6NTE6MTUiLAogICAgICAgICAgICBVcGRhdGVUaW1lRGVzdGluYXRpb25UaW1lICAgICAgICA9PiAxMjc3MzExODc1LAogICAgICAgICAgICBVcGRhdGVUaW1lRXNjYWxhdGlvbiAgICAgICAgICAgICA9PiAxLAogICAgICAgICAgICBVcGRhdGVUaW1lV29ya2luZ1RpbWUgICAgICAgICAgICA9PiAtMTI2MCwKICAgICAgICAgICAgU2VlbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gMSwgIyBvbmx5IG9uIG90cnMgMy54IGZyYW1ld29yawogICAgICAgIH0sCiAgICApOwoKPWN1dAoKc3ViIFdhdGNoZWRWaWV3IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBkZWZpbmUgZmlsdGVyCiAgICAjIGdldCBhbGwgd2F0Y2hlZCB0aWNrZXRzIG5vIG1hdHRlciBpZiB0aGV5IGFyZSBsb2NrZWQgb3Igbm90CiAgICBteSAlRmlsdGVycyA9ICgKICAgICAgICBBbGwgPT4gewogICAgICAgICAgICBOYW1lICAgPT4gJ0FsbCcsCiAgICAgICAgICAgIFByaW8gICA9PiAxMDAwLAogICAgICAgICAgICBTZWFyY2ggPT4gewogICAgICAgICAgICAgICAgV2F0Y2hVc2VySURzID0+IFsgJFBhcmFte1VzZXJJRH0gXSwKICAgICAgICAgICAgICAgIE9yZGVyQnkgICAgICA9PiAkUGFyYW17T3JkZXJCeX0sCiAgICAgICAgICAgICAgICBTb3J0QnkgICAgICAgPT4gJFBhcmFte1NvcnRCeX0sCiAgICAgICAgICAgICAgICBVc2VySUQgICAgICAgPT4gMSwKICAgICAgICAgICAgICAgIFBlcm1pc3Npb24gICA9PiAncm8nLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgTmV3ID0+IHsKICAgICAgICAgICAgTmFtZSAgID0+ICdOZXcgQXJ0aWNsZScsCiAgICAgICAgICAgIFByaW8gICA9PiAxMDAxLAogICAgICAgICAgICBTZWFyY2ggPT4gewogICAgICAgICAgICAgICAgV2F0Y2hVc2VySURzID0+IFsgJFBhcmFte1VzZXJJRH0gXSwKICAgICAgICAgICAgICAgIFRpY2tldEZsYWcgICA9PiB7CiAgICAgICAgICAgICAgICAgICAgU2VlbiA9PiAxLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIFRpY2tldEZsYWdVc2VySUQgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgICAgICBPcmRlckJ5ICAgICAgICAgID0+ICRQYXJhbXtPcmRlckJ5fSwKICAgICAgICAgICAgICAgIFNvcnRCeSAgICAgICAgICAgPT4gJFBhcmFte1NvcnRCeX0sCiAgICAgICAgICAgICAgICBVc2VySUQgICAgICAgICAgID0+IDEsCiAgICAgICAgICAgICAgICBQZXJtaXNzaW9uICAgICAgID0+ICdybycsCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICBSZW1pbmRlciA9PiB7CiAgICAgICAgICAgIE5hbWUgICA9PiAnUGVuZGluZycsCiAgICAgICAgICAgIFByaW8gICA9PiAxMDAyLAogICAgICAgICAgICBTZWFyY2ggPT4gewogICAgICAgICAgICAgICAgU3RhdGVUeXBlID0+IFsgJ3BlbmRpbmcgcmVtaW5kZXInLCAncGVuZGluZyBhdXRvJyBdLAogICAgICAgICAgICAgICAgV2F0Y2hVc2VySURzID0+IFsgJFBhcmFte1VzZXJJRH0gXSwKICAgICAgICAgICAgICAgIE9yZGVyQnkgICAgICA9PiAkUGFyYW17T3JkZXJCeX0sCiAgICAgICAgICAgICAgICBTb3J0QnkgICAgICAgPT4gJFBhcmFte1NvcnRCeX0sCiAgICAgICAgICAgICAgICBVc2VySUQgICAgICAgPT4gMSwKICAgICAgICAgICAgICAgIFBlcm1pc3Npb24gICA9PiAncm8nLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgUmVtaW5kZXJSZWFjaGVkID0+IHsKICAgICAgICAgICAgTmFtZSAgID0+ICdSZW1pbmRlciBSZWFjaGVkJywKICAgICAgICAgICAgUHJpbyAgID0+IDEwMDMsCiAgICAgICAgICAgIFNlYXJjaCA9PiB7CiAgICAgICAgICAgICAgICBTdGF0ZVR5cGUgICAgICAgICAgICAgICAgICAgICA9PiBbJ3BlbmRpbmcgcmVtaW5kZXInXSwKICAgICAgICAgICAgICAgIFRpY2tldFBlbmRpbmdUaW1lT2xkZXJNaW51dGVzID0+IDEsCiAgICAgICAgICAgICAgICBXYXRjaFVzZXJJRHMgICAgICAgICAgICAgICAgICA9PiBbICRQYXJhbXtVc2VySUR9IF0sCiAgICAgICAgICAgICAgICBPcmRlckJ5ICAgICAgICAgICAgICAgICAgICAgICA9PiAkUGFyYW17T3JkZXJCeX0sCiAgICAgICAgICAgICAgICBTb3J0QnkgICAgICAgICAgICAgICAgICAgICAgICA9PiAkUGFyYW17U29ydEJ5fSwKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgICAgICAgICAgICAgICAgICAgID0+IDEsCiAgICAgICAgICAgICAgICBQZXJtaXNzaW9uICAgICAgICAgICAgICAgICAgICA9PiAncm8nLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICApOwoKICAgIGlmICggJFNlbGYtPntDb25maWdPYmplY3R9LT5HZXQoJ1RpY2tldDo6V2F0Y2hlcicpICkgewoKICAgICAgICAjIGRvIHNob3duIHRpY2tldHMgbG9va3VwCiAgICAgICAgbXkgJExpbWl0ID0gJFBhcmFte0xpbWl0fSB8fCAxMDA7CiAgICAgICAgaWYgKCAkUGFyYW17RmlsdGVyfSApIHsKICAgICAgICAgICAgbXkgQFZpZXdhYmxlVGlja2V0cyA9ICRTZWxmLT57VGlja2V0T2JqZWN0fS0+VGlja2V0U2VhcmNoKAogICAgICAgICAgICAgICAgJXsgJEZpbHRlcnN7ICRQYXJhbXtGaWx0ZXJ9IH0tPntTZWFyY2h9IH0sCiAgICAgICAgICAgICAgICBMaW1pdCAgPT4gJExpbWl0LAogICAgICAgICAgICAgICAgUmVzdWx0ID0+ICdBUlJBWScsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIG15IEBMaXN0OwogICAgICAgICAgICBmb3IgbXkgJFRpY2tldElEIChAVmlld2FibGVUaWNrZXRzKSB7CiAgICAgICAgICAgICAgICBuZXh0IGlmICEkVGlja2V0SUQ7CiAgICAgICAgICAgICAgICBteSAlQXJ0aWNsZSA9ICRTZWxmLT5UaWNrZXRMaXN0KCBUaWNrZXRJRCA9PiAkVGlja2V0SUQsIFVzZXJJRCA9PiAkUGFyYW17VXNlcklEfSApOwogICAgICAgICAgICAgICAgbmV4dCBpZiAhJUFydGljbGU7CiAgICAgICAgICAgICAgICBwdXNoIEBMaXN0LCBcJUFydGljbGU7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKCAhQExpc3QgKSB7CiAgICAgICAgICAgICAgICAkU2VsZi0+e0xvZ09iamVjdH0tPkxvZygKICAgICAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJUaGVyZSBhcmUgbm8gd2F0Y2hlZCB0aWNrZXRzIHVuZGVyICRQYXJhbXtGaWx0ZXJ9IGZpbHRlciAiCiAgICAgICAgICAgICAgICAgICAgICAgIC4gImNhdGVnb3J5IiwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgcmV0dXJuIEBMaXN0OwogICAgICAgIH0KCiAgICAgICAgIyBkbyBuYXYgYmFyIGxvb2t1cAogICAgICAgIG15IEBTdGF0ZXM7CiAgICAgICAgZm9yIG15ICRGaWx0ZXIgKCBzb3J0IGtleXMgJUZpbHRlcnMgKSB7CiAgICAgICAgICAgIG15ICRDb3VudCA9ICRTZWxmLT57VGlja2V0T2JqZWN0fS0+VGlja2V0U2VhcmNoKAogICAgICAgICAgICAgICAgJXsgJEZpbHRlcnN7JEZpbHRlcn0tPntTZWFyY2h9IH0sCiAgICAgICAgICAgICAgICBSZXN1bHQgPT4gJ0NPVU5UJywKICAgICAgICAgICAgKTsKICAgICAgICAgICAgbXkgJENvdW50TmV3ID0gJFNlbGYtPntUaWNrZXRPYmplY3R9LT5UaWNrZXRTZWFyY2goCiAgICAgICAgICAgICAgICAleyAkRmlsdGVyc3skRmlsdGVyfS0+e1NlYXJjaH0gfSwKICAgICAgICAgICAgICAgIFJlc3VsdCAgICAgPT4gJ0NPVU5UJywKICAgICAgICAgICAgICAgIFRpY2tldEZsYWcgPT4gewogICAgICAgICAgICAgICAgICAgIFNlZW4gPT4gMSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICBUaWNrZXRGbGFnVXNlcklEID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICApOwogICAgICAgICAgICAkQ291bnROZXcgPSAkQ291bnQgLSAkQ291bnROZXc7CgogICAgICAgICAgICBwdXNoIEBTdGF0ZXMsIHsKICAgICAgICAgICAgICAgIFN0YXRlVHlwZSAgICAgICAgICAgICAgICAgICAgICA9PiAkRmlsdGVyLAogICAgICAgICAgICAgICAgRmlsdGVyTmFtZSAgICAgICAgICAgICAgICAgICAgID0+ICRGaWx0ZXJzeyRGaWx0ZXJ9LT57TmFtZX0sCiAgICAgICAgICAgICAgICBOdW1iZXJPZlRpY2tldHMgICAgICAgICAgICAgICAgPT4gJENvdW50LAogICAgICAgICAgICAgICAgTnVtYmVyT2ZUaWNrZXRzV2l0aE5ld01lc3NhZ2VzID0+ICRDb3VudE5ldywKICAgICAgICAgICAgfTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIEBTdGF0ZXM7CiAgICB9CiAgICAkU2VsZi0+e0xvZ09iamVjdH0tPkxvZygKICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgIE1lc3NhZ2UgID0+ICdUaWNrZXQgd2F0Y2hlciBmZWF0dXJlIGlzIG5vdCBlbmFibGUgaW4gc3lzdGVtIGNvbmZpZ3VyYXRpb24gJwogICAgICAgICAgICAuICdQbGVhc2UgY29udGFjdCBhZG1pbicsCiAgICApOwogICAgcmV0dXJuIC0xOwp9Cgo9aXRlbSBSZXNwb25zaWJsZVZpZXcoKQoKR2V0IHRoZSBudW1iZXIgb2YgbG9ja2VkIG9yIHVubG9ja2VkIHRpY2tldHMgd2hlcmUgdGhlIHVzZXIgaXMgcmVzcG9uc2libGUgZm9yIGJ5IHN0YXR1cyB0eXBlCihhbGwsIG5ldywgcmVtaW5kZXIsIHJlbWluZGVyIHJlYWNoZWQgKSBvciBsYXN0IGN1c3RvbWVyIGFydGljbGUgaW5mb3JtYXRpb24gZnJvbSBlYWNoIHRpY2tldCB3aGVyZQp0aGUgdXNlciBpcyByZXNwb25zaWJsZSBmb3IgIGluIGVhY2ggc3RhdHVzIHdpdGhpbiBhbiBzcGVjaWZpZWQgZmlsdGVyLCBpZiB0aGUgIkZpbHRlciIgYXJndW1lbnQgaXMKc3BlY2lmaWVkLgoKICAgIG15IEBSZXN1bHQgPSAkaVBob25lT2JqZWN0LT5SZXNwb25zaWJsZVZpZXcoCiAgICAgICAgVXNlcklEICA9PiAxLAoKICAgICAgICAjIE9yZGVyQnkgYW5kIFNvcnRCeSAob3B0aW9uYWwpCiAgICAgICAgT3JkZXJCeSA9PiAnRG93bicsICAjIERvd258VXAKICAgICAgICBTb3J0QnkgID0+ICdBZ2UnLCAgICMgT3duZXJ8UmVzcG9uc2libGV8Q3VzdG9tZXJJRHxTdGF0ZXxUaWNrZXROdW1iZXJ8UXVldWV8UHJpb3JpdHl8QWdlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIFR5cGV8TG9ja3xUaXRsZXxTZXJ2aWNlfFNMQXxQZW5kaW5nVGltZXxFc2NhbGF0aW9uVGltZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBFc2NhbGF0aW9uVXBkYXRlVGltZXxFc2NhbGF0aW9uUmVzcG9uc2VUaW1lfEVzY2FsYXRpb25Tb2x1dGlvblRpbWUKICAgICk7CgogICAgI2EgcmVzdWx0IGNvdWxkIGJlCgogICAgQFJlc3VsdCA9ICgKICAgICAgICB7CiAgICAgICAgICAgIFN0YXRlVHlwZSAgICAgICAgICAgICAgICAgICAgICA9PiAiQWxsIiwKICAgICAgICAgICAgTnVtYmVyT2ZUaWNrZXRzICAgICAgICAgICAgICAgID0+IDIsCiAgICAgICAgICAgIE51bWJlck9mVGlja2V0c1dpdGhOZXdNZXNzYWdlcyA9PiAwLAogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgICBTdGF0ZVR5cGUgICAgICAgICAgICAgICAgICAgICAgPT4gIk5ldywKICAgICAgICAgICAgTnVtYmVyT2ZUaWNrZXRzICAgICAgICAgICAgICAgID0+IDEsCiAgICAgICAgICAgIE51bWJlck9mVGlja2V0c1dpdGhOZXdNZXNzYWdlcyA9PiAwLAogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgICBTdGF0ZVR5cGUgICAgICAgICAgICAgICAgICAgICAgPT4gIlJlbWluZGVyLAogICAgICAgICAgICBOdW1iZXJPZlRpY2tldHMgICAgICAgICAgICAgICAgPT4gMCwKICAgICAgICAgICAgTnVtYmVyT2ZUaWNrZXRzV2l0aE5ld01lc3NhZ2VzID0+IDAsCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAgIFN0YXRlVHlwZSAgICAgICAgICAgICAgICAgICAgICA9PiAiUmVtaW5kZXJSZWFjaGVkLAogICAgICAgICAgICBOdW1iZXJPZlRpY2tldHMgICAgICAgICAgICAgICAgPT4gMSwKICAgICAgICAgICAgTnVtYmVyT2ZUaWNrZXRzV2l0aE5ld01lc3NhZ2VzID0+IDAsCiAgICAgICAgfSwKICAgICk7CgogICAgbXkgQFJlc3VsdCA9ICRpUGhvbmVPYmplY3QtPlJlc3BvbnNpYmxlVmlldygKICAgICAgICBVc2VySUQgID0+IDEsCiAgICAgICAgRmlsdGVyICA9PiAiTmV3IiwKCiAgICAgICAgI0xpbWl0IChvcHRpb25hbCkgc2V0IHRvIDEwMCBieSBkZWZhdWx0LCBpZiBub3Qgc3BjaWZpZWQKICAgICAgICBMaW1pdCAgID0+IDUwLAoKICAgICAgICAjIE9yZGVyQnkgYW5kIFNvcnRCeSAob3B0aW9uYWwpCiAgICAgICAgT3JkZXJCeSA9PiAnRG93bicsICAjIERvd258VXAKICAgICAgICBTb3J0QnkgID0+ICdBZ2UnLCAgICMgT3duZXJ8UmVzcG9uc2libGV8Q3VzdG9tZXJJRHxTdGF0ZXxUaWNrZXROdW1iZXJ8UXVldWV8UHJpb3JpdHl8QWdlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIFR5cGV8TG9ja3xUaXRsZXxTZXJ2aWNlfFNMQXxQZW5kaW5nVGltZXxFc2NhbGF0aW9uVGltZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBFc2NhbGF0aW9uVXBkYXRlVGltZXxFc2NhbGF0aW9uUmVzcG9uc2VUaW1lfEVzY2FsYXRpb25Tb2x1dGlvblRpbWUKICAgICk7CgogICAgI2EgcmVzdWx0IGNvdWxkIGJlCgogICAgQFJlc3VsdCA9ICgKICAgICAgICB7CiAgICAgICAgICAgIEFnZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0+IDE1OTYsCiAgICAgICAgICAgIEFydGljbGVJRCAgICAgICAgICAgICAgICAgICAgICAgID0+IDkyMywKICAgICAgICAgICAgQXJ0aWNsZVR5cGUgICAgICAgICAgICAgICAgICAgICAgPT4gInBob25lIiwKICAgICAgICAgICAgQm9keSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gIlRoaXMgaXMgYW4gb3BlbiB0aWNrZXQiLAogICAgICAgICAgICBDaGFyc2V0ICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAidXRmLTgiLAogICAgICAgICAgICBDb250ZW50Q2hhcnNldCAgICAgICAgICAgICAgICAgICA9PiAidXRmLTgiLAogICAgICAgICAgICBDb250ZW50VHlwZSAgICAgICAgICAgICAgICAgICAgICA9PiAidGV4dC9wbGFpbjsiLAogICAgICAgICAgICBjaGFyc2V0ICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAidXRmLTgiLAogICAgICAgICAgICBDcmVhdGVkICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAiMjAxMC0wNi0yMyAxMTo0NjoxNSIsCiAgICAgICAgICAgIENyZWF0ZWRCeSAgICAgICAgICAgICAgICAgICAgICAgID0+IDEsCiAgICAgICAgICAgIEZpcnN0UmVzcG9uc2VUaW1lICAgICAgICAgICAgICAgID0+IC0xMjk2LAogICAgICAgICAgICBGaXJzdFJlc3BvbnNlVGltZURlc3RpbmF0aW9uRGF0ZSA9PiAiMjAxMC0wNi0yMyAxMTo1MToxNCIsCiAgICAgICAgICAgIEZpcnN0UmVzcG9uc2VUaW1lRGVzdGluYXRpb25UaW1lID0+IDEyNzczMTE4NzQsCiAgICAgICAgICAgIEZpcnN0UmVzcG9uc2VUaW1lRXNjYWxhdGlvbiAgICAgID0+IDEsCiAgICAgICAgICAgIEZpcnN0UmVzcG9uc2VUaW1lV29ya2luZ1RpbWUgICAgID0+IC0xMjYwLAogICAgICAgICAgICBGcm9tICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAiY3VzdG9tZXJAb3Rycy5vcmciLAogICAgICAgICAgICBJbmNvbWluZ1RpbWUgICAgICAgICAgICAgICAgICAgICA9PiAxMjc3MzExNTc1LAogICAgICAgICAgICBMb2NrICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAibG9jayIsCiAgICAgICAgICAgIE1pbWVUeXBlICAgICAgICAgICAgICAgICAgICAgICAgID0+ICJ0ZXh0L3BsYWluIiwKICAgICAgICAgICAgT3duZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gIkFnZW50MSIsCiAgICAgICAgICAgIFByaW9yaXR5ICAgICAgICAgICAgICAgICAgICAgICAgID0+ICIzIG5vcm1hbCIsCiAgICAgICAgICAgIFByaW9yaXR5Q29sb3IgICAgICAgICAgICAgICAgICAgID0+ICIjY2RjZGNkIiwKICAgICAgICAgICAgUXVldWUgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gIkp1bmsiLAogICAgICAgICAgICBSZXNwb25zaWJsZSAgICAgICAgICAgICAgICAgICAgICA9PiAiQWdlbnQxIiwKICAgICAgICAgICAgU2VuZGVyVHlwZSAgICAgICAgICAgICAgICAgICAgICAgPT4gImN1c3RvbWVyIiwKICAgICAgICAgICAgU29sdXRpb25UaW1lICAgICAgICAgICAgICAgICAgICAgPT4gLTEyOTYsCiAgICAgICAgICAgIFNvbHV0aW9uVGltZURlc3RpbmF0aW9uRGF0ZSAgICAgID0+ICIyMDEwLTA2LTIzIDExOjUxOjE0IiwKICAgICAgICAgICAgU29sdXRpb25UaW1lRGVzdGluYXRpb25UaW1lICAgICAgPT4gMTI3NzMxMTg3NCwKICAgICAgICAgICAgU29sdXRpb25UaW1lRXNjYWxhdGlvbiAgICAgICAgICAgPT4gMSwKICAgICAgICAgICAgU29sdXRpb25UaW1lV29ya2luZ1RpbWUgICAgICAgICAgPT4gLTEyNjAsCiAgICAgICAgICAgIFN0YXRlICAgICAgICAgICAgICAgICAgICAgICAgICAgID0+ICJvcGVuIiwKICAgICAgICAgICAgU3ViamVjdCAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gIk9wZW4gVGlja2V0IFRlc3QiLAogICAgICAgICAgICBUaWNrZXRJRCAgICAgICAgICAgICAgICAgICAgICAgICA9PiAxNzYsCiAgICAgICAgICAgIFRpY2tldE51bWJlciAgICAgICAgICAgICAgICAgICAgID0+IDIwMTAwNjIzMTAwMDAwMTUsCiAgICAgICAgICAgIFRpdGxlICAgICAgICAgICAgICAgICAgICAgICAgICAgID0+ICJPcGVuIFRpY2tldCBUZXN0IiwKICAgICAgICAgICAgVG8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gIkp1bmsiLAogICAgICAgICAgICBUeXBlICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAiSW5jaWRlbnQiLAogICAgICAgICAgICBVbnRpbFRpbWUgICAgICAgICAgICAgICAgICAgICAgICA9PiAwLAogICAgICAgICAgICBVcGRhdGVUaW1lICAgICAgICAgICAgICAgICAgICAgICA9PiAtMTI5NSwKICAgICAgICAgICAgVXBkYXRlVGltZURlc3RpbmF0aW9uRGF0ZSAgICAgICAgPT4gIjIwMTAtMDYtMjMgMTE6NTE6MTUiLAogICAgICAgICAgICBVcGRhdGVUaW1lRGVzdGluYXRpb25UaW1lICAgICAgICA9PiAxMjc3MzExODc1LAogICAgICAgICAgICBVcGRhdGVUaW1lRXNjYWxhdGlvbiAgICAgICAgICAgICA9PiAxLAogICAgICAgICAgICBVcGRhdGVUaW1lV29ya2luZ1RpbWUgICAgICAgICAgICA9PiAtMTI2MCwKICAgICAgICAgICAgU2VlbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gMSwgIyBvbmx5IG9uIG90cnMgMy54IGZyYW1ld29yawogICAgICAgIH0sCiAgICApOwoKPWN1dAoKc3ViIFJlc3BvbnNpYmxlVmlldyB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgZGVmaW5lIGZpbHRlcgogICAgbXkgJUZpbHRlcnMgPSAoCiAgICAgICAgQWxsID0+IHsKICAgICAgICAgICAgTmFtZSAgID0+ICdBbGwnLAogICAgICAgICAgICBQcmlvICAgPT4gMTAwMCwKICAgICAgICAgICAgU2VhcmNoID0+IHsKICAgICAgICAgICAgICAgIFN0YXRlVHlwZSAgICAgID0+ICdPcGVuJywKICAgICAgICAgICAgICAgIFJlc3BvbnNpYmxlSURzID0+IFsgJFBhcmFte1VzZXJJRH0gXSwKICAgICAgICAgICAgICAgIE9yZGVyQnkgICAgICAgID0+ICRQYXJhbXtPcmRlckJ5fSwKICAgICAgICAgICAgICAgIFNvcnRCeSAgICAgICAgID0+ICRQYXJhbXtTb3J0Qnl9LAogICAgICAgICAgICAgICAgVXNlcklEICAgICAgICAgPT4gMSwKICAgICAgICAgICAgICAgIFBlcm1pc3Npb24gICAgID0+ICdybycsCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICBOZXcgPT4gewogICAgICAgICAgICBOYW1lICAgPT4gJ05ldyBBcnRpY2xlJywKICAgICAgICAgICAgUHJpbyAgID0+IDEwMDEsCiAgICAgICAgICAgIFNlYXJjaCA9PiB7CiAgICAgICAgICAgICAgICBTdGF0ZVR5cGUgICAgICA9PiAnT3BlbicsCiAgICAgICAgICAgICAgICBSZXNwb25zaWJsZUlEcyA9PiBbICRQYXJhbXtVc2VySUR9IF0sCiAgICAgICAgICAgICAgICBUaWNrZXRGbGFnICAgICA9PiB7CiAgICAgICAgICAgICAgICAgICAgU2VlbiA9PiAxLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIFRpY2tldEZsYWdVc2VySUQgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgICAgICBPcmRlckJ5ICAgICAgICAgID0+ICRQYXJhbXtPcmRlckJ5fSwKICAgICAgICAgICAgICAgIFNvcnRCeSAgICAgICAgICAgPT4gJFBhcmFte1NvcnRCeX0sCiAgICAgICAgICAgICAgICBVc2VySUQgICAgICAgICAgID0+IDEsCiAgICAgICAgICAgICAgICBQZXJtaXNzaW9uICAgICAgID0+ICdybycsCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICBSZW1pbmRlciA9PiB7CiAgICAgICAgICAgIE5hbWUgICA9PiAnUGVuZGluZycsCiAgICAgICAgICAgIFByaW8gICA9PiAxMDAyLAogICAgICAgICAgICBTZWFyY2ggPT4gewogICAgICAgICAgICAgICAgU3RhdGVUeXBlID0+IFsgJ3BlbmRpbmcgcmVtaW5kZXInLCAncGVuZGluZyBhdXRvJyBdLAogICAgICAgICAgICAgICAgUmVzcG9uc2libGVJRHMgPT4gWyAkUGFyYW17VXNlcklEfSBdLAogICAgICAgICAgICAgICAgT3JkZXJCeSAgICAgICAgPT4gJFBhcmFte09yZGVyQnl9LAogICAgICAgICAgICAgICAgU29ydEJ5ICAgICAgICAgPT4gJFBhcmFte1NvcnRCeX0sCiAgICAgICAgICAgICAgICBVc2VySUQgICAgICAgICA9PiAxLAogICAgICAgICAgICAgICAgUGVybWlzc2lvbiAgICAgPT4gJ3JvJywKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIFJlbWluZGVyUmVhY2hlZCA9PiB7CiAgICAgICAgICAgIE5hbWUgICA9PiAnUmVtaW5kZXIgUmVhY2hlZCcsCiAgICAgICAgICAgIFByaW8gICA9PiAxMDAzLAogICAgICAgICAgICBTZWFyY2ggPT4gewogICAgICAgICAgICAgICAgU3RhdGVUeXBlICAgICAgICAgICAgICAgICAgICAgPT4gWydwZW5kaW5nIHJlbWluZGVyJ10sCiAgICAgICAgICAgICAgICBUaWNrZXRQZW5kaW5nVGltZU9sZGVyTWludXRlcyA9PiAxLAogICAgICAgICAgICAgICAgUmVzcG9uc2libGVJRHMgICAgICAgICAgICAgICAgPT4gWyAkUGFyYW17VXNlcklEfSBdLAogICAgICAgICAgICAgICAgT3JkZXJCeSAgICAgICAgICAgICAgICAgICAgICAgPT4gJFBhcmFte09yZGVyQnl9LAogICAgICAgICAgICAgICAgU29ydEJ5ICAgICAgICAgICAgICAgICAgICAgICAgPT4gJFBhcmFte1NvcnRCeX0sCiAgICAgICAgICAgICAgICBVc2VySUQgICAgICAgICAgICAgICAgICAgICAgICA9PiAxLAogICAgICAgICAgICAgICAgUGVybWlzc2lvbiAgICAgICAgICAgICAgICAgICAgPT4gJ3JvJywKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgKTsKCiAgICBpZiAoICRTZWxmLT57Q29uZmlnT2JqZWN0fS0+R2V0KCdUaWNrZXQ6OlJlc3BvbnNpYmxlJykgKSB7CgogICAgICAgICMgZG8gc2hvd24gdGlja2V0cyBsb29rdXAKICAgICAgICBteSAkTGltaXQgPSAkUGFyYW17TGltaXR9IHx8IDEwMDsKICAgICAgICBpZiAoICRQYXJhbXtGaWx0ZXJ9ICkgewogICAgICAgICAgICBteSBAVmlld2FibGVUaWNrZXRzID0gJFNlbGYtPntUaWNrZXRPYmplY3R9LT5UaWNrZXRTZWFyY2goCiAgICAgICAgICAgICAgICAleyAkRmlsdGVyc3sgJFBhcmFte0ZpbHRlcn0gfS0+e1NlYXJjaH0gfSwKICAgICAgICAgICAgICAgIExpbWl0ICA9PiAkTGltaXQsCiAgICAgICAgICAgICAgICBSZXN1bHQgPT4gJ0FSUkFZJywKICAgICAgICAgICAgKTsKICAgICAgICAgICAgbXkgQExpc3Q7CiAgICAgICAgICAgIGZvciBteSAkVGlja2V0SUQgKEBWaWV3YWJsZVRpY2tldHMpIHsKICAgICAgICAgICAgICAgIG5leHQgaWYgISRUaWNrZXRJRDsKICAgICAgICAgICAgICAgIG15ICVBcnRpY2xlID0gJFNlbGYtPlRpY2tldExpc3QoIFRpY2tldElEID0+ICRUaWNrZXRJRCwgVXNlcklEID0+ICRQYXJhbXtVc2VySUR9ICk7CiAgICAgICAgICAgICAgICBuZXh0IGlmICElQXJ0aWNsZTsKICAgICAgICAgICAgICAgIHB1c2ggQExpc3QsIFwlQXJ0aWNsZTsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoICFATGlzdCApIHsKICAgICAgICAgICAgICAgICRTZWxmLT57TG9nT2JqZWN0fS0+TG9nKAogICAgICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIlRoZXJlIGFyZSBubyByZXNwb25zaWJsZSBmb3IgdGlja2V0cyB1bmRlciAkUGFyYW17RmlsdGVyfSBmaWx0ZXIgIgogICAgICAgICAgICAgICAgICAgICAgICAuICJjYXRlZ29yeSIsCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHJldHVybiBATGlzdDsKICAgICAgICB9CgogICAgICAgICMgZG8gbmF2IGJhciBsb29rdXAKICAgICAgICBteSBAU3RhdGVzOwogICAgICAgIGZvciBteSAkRmlsdGVyICggc29ydCBrZXlzICVGaWx0ZXJzICkgewogICAgICAgICAgICBteSAkQ291bnQgPSAkU2VsZi0+e1RpY2tldE9iamVjdH0tPlRpY2tldFNlYXJjaCgKICAgICAgICAgICAgICAgICV7ICRGaWx0ZXJzeyRGaWx0ZXJ9LT57U2VhcmNofSB9LAogICAgICAgICAgICAgICAgUmVzdWx0ID0+ICdDT1VOVCcsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIG15ICRDb3VudE5ldyA9ICRTZWxmLT57VGlja2V0T2JqZWN0fS0+VGlja2V0U2VhcmNoKAogICAgICAgICAgICAgICAgJXsgJEZpbHRlcnN7JEZpbHRlcn0tPntTZWFyY2h9IH0sCiAgICAgICAgICAgICAgICBSZXN1bHQgICAgID0+ICdDT1VOVCcsCiAgICAgICAgICAgICAgICBUaWNrZXRGbGFnID0+IHsKICAgICAgICAgICAgICAgICAgICBTZWVuID0+IDEsCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgVGlja2V0RmxhZ1VzZXJJRCA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgJENvdW50TmV3ID0gJENvdW50IC0gJENvdW50TmV3OwoKICAgICAgICAgICAgcHVzaCBAU3RhdGVzLCB7CiAgICAgICAgICAgICAgICBTdGF0ZVR5cGUgICAgICAgICAgICAgICAgICAgICAgPT4gJEZpbHRlciwKICAgICAgICAgICAgICAgIEZpbHRlck5hbWUgICAgICAgICAgICAgICAgICAgICA9PiAkRmlsdGVyc3skRmlsdGVyfS0+e05hbWV9LAogICAgICAgICAgICAgICAgTnVtYmVyT2ZUaWNrZXRzICAgICAgICAgICAgICAgID0+ICRDb3VudCwKICAgICAgICAgICAgICAgIE51bWJlck9mVGlja2V0c1dpdGhOZXdNZXNzYWdlcyA9PiAkQ291bnROZXcsCiAgICAgICAgICAgIH07CiAgICAgICAgfQogICAgICAgIHJldHVybiBAU3RhdGVzOwogICAgfQogICAgJFNlbGYtPntMb2dPYmplY3R9LT5Mb2coCiAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICBNZXNzYWdlICA9PiAnVGlja2V0IHJlc3BvbnNpYmxlIGZlYXR1cmUgaXMgbm90IGVuYWJsZSBpbiBzeXN0ZW0gY29uZmlndXJhdGlvbiAnCiAgICAgICAgICAgIC4gJ1BsZWFzZSBjb250YWN0IGFkbWluJywKICAgICk7CiAgICByZXR1cm4gLTE7Cn0KCj1pdGVtIFF1ZXVlVmlldygpCgpHZXQgdGhlIG51bWJlciBvZiB2aWV3YWJsZSB0aWNrZXRzIHBlciBxdWV1ZSBhcyB3ZWxsIGFzIGJhc2ljIHF1ZXVlIGluZm9ybWF0aW9uLCBvciBsYXN0IGN1c3RvbWVyCmFydGljbGUgaW5mb3JtYXRpb24gZnJvbSBlYWNoIHRpY2tldCB3aXRoaW4gYW4gc3BlY2lmaWVkIHF1ZXVlLCBpZiB0aGUgIlF1ZXVlIiBhcmd1bWVudCBpcwpzcGVjaWZpZWQuCgogICAgbXkgQFJlc3VsdCA9ICRpUGhvbmVPYmplY3QtPlF1ZXVlVmlldygKICAgICAgICBVc2VySUQgID0+IDEsCgogICAgICAgICMgT3JkZXJCeSBhbmQgU29ydEJ5IChvcHRpb25hbCkKICAgICAgICBPcmRlckJ5ID0+ICdEb3duJywgICMgRG93bnxVcAogICAgICAgIFNvcnRCeSAgPT4gJ0FnZScsICAgIyBPd25lcnxSZXNwb25zaWJsZXxDdXN0b21lcklEfFN0YXRlfFRpY2tldE51bWJlcnxRdWV1ZXxQcmlvcml0eXxBZ2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgVHlwZXxMb2NrfFRpdGxlfFNlcnZpY2V8U0xBfFBlbmRpbmdUaW1lfEVzY2FsYXRpb25UaW1lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIEVzY2FsYXRpb25VcGRhdGVUaW1lfEVzY2FsYXRpb25SZXNwb25zZVRpbWV8RXNjYWxhdGlvblNvbHV0aW9uVGltZQogICAgKTsKCiAgICAjYSByZXN1bHQgY291bGQgYmUKCiAgICBAUmVzdWx0ID0gKAogICAgICAgIHsKICAgICAgICAgICAgUXVldWVOYW1lICAgICAgICAgICAgICAgICAgICAgID0+ICJKdW5rIiwKICAgICAgICAgICAgTnVtYmVyT2ZUaWNrZXRzICAgICAgICAgICAgICAgID0+IDIsCiAgICAgICAgICAgIE51bWJlck9mVGlja2V0c1dpdGhOZXdNZXNzYWdlcyA9PiAwLAogICAgICAgICAgICBRdWV1ZUlEICAgICAgICAgICAgICAgICAgICAgICAgPT4gMywKICAgICAgICAgICAgQ29tbWVudCAgICAgICAgICAgICAgICAgICAgICAgID0+ICJBbGwganVuayB0aWNrZXRzLiIKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICAgUXVldWVOYW1lICAgICAgICAgICAgICAgICAgICAgID0+ICJNaXNjIiwKICAgICAgICAgICAgTnVtYmVyT2ZUaWNrZXRzICAgICAgICAgICAgICAgID0+IDEsCiAgICAgICAgICAgIE51bWJlck9mVGlja2V0c1dpdGhOZXdNZXNzYWdlcyA9PiAwLAogICAgICAgICAgICBRdWV1ZUlEICAgICAgICAgICAgICAgICAgICAgICAgPT4gNCwKICAgICAgICAgICAgQ29tbWVudCAgICAgICAgICAgICAgICAgICAgICAgID0+ICJBbGwgbWlzYyB0aWNrZXRzLiIKICAgICAgICB9LAogICAgKTsKCiAgICBteSBAUmVzdWx0ID0gJGlQaG9uZU9iamVjdC0+UXVldWVWaWV3KAogICAgICAgIFVzZXJJRCAgID0+IDEsCiAgICAgICAgUXVldWVJRCAgPT4gNCwKCiAgICAgICAgI0xpbWl0IChvcHRpb25hbCkgc2V0IHRvIDEwMCBieSBkZWZhdWx0LCBpZiBub3Qgc3BjaWZpZWQKICAgICAgICBMaW1pdCAgICA9PiA1MCwKCiAgICAgICAgIyBPcmRlckJ5IGFuZCBTb3J0QnkgKG9wdGlvbmFsKQogICAgICAgIE9yZGVyQnkgID0+ICdEb3duJywgICMgRG93bnxVcAogICAgICAgIFNvcnRCeSAgID0+ICdBZ2UnLCAgICMgT3duZXJ8UmVzcG9uc2libGV8Q3VzdG9tZXJJRHxTdGF0ZXxUaWNrZXROdW1iZXJ8UXVldWV8UHJpb3JpdHl8QWdlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIFR5cGV8TG9ja3xUaXRsZXxTZXJ2aWNlfFNMQXxQZW5kaW5nVGltZXxFc2NhbGF0aW9uVGltZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBFc2NhbGF0aW9uVXBkYXRlVGltZXxFc2NhbGF0aW9uUmVzcG9uc2VUaW1lfEVzY2FsYXRpb25Tb2x1dGlvblRpbWUKICAgICk7CgogICAgI2EgcmVzdWx0IGNvdWxkIGJlCgogICAgQFJlc3VsdCA9ICgKICAgICAgICB7CiAgICAgICAgICAgIEFnZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0+IDE1OTYsCiAgICAgICAgICAgIEFydGljbGVJRCAgICAgICAgICAgICAgICAgICAgICAgID0+IDkyMywKICAgICAgICAgICAgQXJ0aWNsZVR5cGUgICAgICAgICAgICAgICAgICAgICAgPT4gInBob25lIiwKICAgICAgICAgICAgQm9keSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gIlRoaXMgaXMgYW4gb3BlbiB0aWNrZXQiLAogICAgICAgICAgICBDaGFyc2V0ICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAidXRmLTgiLAogICAgICAgICAgICBDb250ZW50Q2hhcnNldCAgICAgICAgICAgICAgICAgICA9PiAidXRmLTgiLAogICAgICAgICAgICBDb250ZW50VHlwZSAgICAgICAgICAgICAgICAgICAgICA9PiAidGV4dC9wbGFpbjsiLAogICAgICAgICAgICBjaGFyc2V0ICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAidXRmLTgiLAogICAgICAgICAgICBDcmVhdGVkICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAiMjAxMC0wNi0yMyAxMTo0NjoxNSIsCiAgICAgICAgICAgIENyZWF0ZWRCeSAgICAgICAgICAgICAgICAgICAgICAgID0+IDEsCiAgICAgICAgICAgIEZpcnN0UmVzcG9uc2VUaW1lICAgICAgICAgICAgICAgID0+IC0xMjk2LAogICAgICAgICAgICBGaXJzdFJlc3BvbnNlVGltZURlc3RpbmF0aW9uRGF0ZSA9PiAiMjAxMC0wNi0yMyAxMTo1MToxNCIsCiAgICAgICAgICAgIEZpcnN0UmVzcG9uc2VUaW1lRGVzdGluYXRpb25UaW1lID0+IDEyNzczMTE4NzQsCiAgICAgICAgICAgIEZpcnN0UmVzcG9uc2VUaW1lRXNjYWxhdGlvbiAgICAgID0+IDEsCiAgICAgICAgICAgIEZpcnN0UmVzcG9uc2VUaW1lV29ya2luZ1RpbWUgICAgID0+IC0xMjYwLAogICAgICAgICAgICBGcm9tICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAiY3VzdG9tZXJAb3Rycy5vcmciLAogICAgICAgICAgICBJbmNvbWluZ1RpbWUgICAgICAgICAgICAgICAgICAgICA9PiAxMjc3MzExNTc1LAogICAgICAgICAgICBMb2NrICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAibG9jayIsCiAgICAgICAgICAgIE1pbWVUeXBlICAgICAgICAgICAgICAgICAgICAgICAgID0+ICJ0ZXh0L3BsYWluIiwKICAgICAgICAgICAgT3duZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gIkFnZW50MSIsCiAgICAgICAgICAgIFByaW9yaXR5ICAgICAgICAgICAgICAgICAgICAgICAgID0+ICIzIG5vcm1hbCIsCiAgICAgICAgICAgIFByaW9yaXR5Q29sb3IgICAgICAgICAgICAgICAgICAgID0+ICIjY2RjZGNkIiwKICAgICAgICAgICAgUXVldWUgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gIk1pc2MiLAogICAgICAgICAgICBSZXNwb25zaWJsZSAgICAgICAgICAgICAgICAgICAgICA9PiAiQWdlbnQxIiwKICAgICAgICAgICAgU2VuZGVyVHlwZSAgICAgICAgICAgICAgICAgICAgICAgPT4gImN1c3RvbWVyIiwKICAgICAgICAgICAgU29sdXRpb25UaW1lICAgICAgICAgICAgICAgICAgICAgPT4gLTEyOTYsCiAgICAgICAgICAgIFNvbHV0aW9uVGltZURlc3RpbmF0aW9uRGF0ZSAgICAgID0+ICIyMDEwLTA2LTIzIDExOjUxOjE0IiwKICAgICAgICAgICAgU29sdXRpb25UaW1lRGVzdGluYXRpb25UaW1lICAgICAgPT4gMTI3NzMxMTg3NCwKICAgICAgICAgICAgU29sdXRpb25UaW1lRXNjYWxhdGlvbiAgICAgICAgICAgPT4gMSwKICAgICAgICAgICAgU29sdXRpb25UaW1lV29ya2luZ1RpbWUgICAgICAgICAgPT4gLTEyNjAsCiAgICAgICAgICAgIFN0YXRlICAgICAgICAgICAgICAgICAgICAgICAgICAgID0+ICJvcGVuIiwKICAgICAgICAgICAgU3ViamVjdCAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gIk9wZW4gVGlja2V0IFRlc3QiLAogICAgICAgICAgICBUaWNrZXRJRCAgICAgICAgICAgICAgICAgICAgICAgICA9PiAxNzYsCiAgICAgICAgICAgIFRpY2tldE51bWJlciAgICAgICAgICAgICAgICAgICAgID0+IDIwMTAwNjIzMTAwMDAwMTUsCiAgICAgICAgICAgIFRpdGxlICAgICAgICAgICAgICAgICAgICAgICAgICAgID0+ICJPcGVuIFRpY2tldCBUZXN0IiwKICAgICAgICAgICAgVG8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gIkp1bmsiLAogICAgICAgICAgICBUeXBlICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAiSW5jaWRlbnQiLAogICAgICAgICAgICBVbnRpbFRpbWUgICAgICAgICAgICAgICAgICAgICAgICA9PiAwLAogICAgICAgICAgICBVcGRhdGVUaW1lICAgICAgICAgICAgICAgICAgICAgICA9PiAtMTI5NSwKICAgICAgICAgICAgVXBkYXRlVGltZURlc3RpbmF0aW9uRGF0ZSAgICAgICAgPT4gIjIwMTAtMDYtMjMgMTE6NTE6MTUiLAogICAgICAgICAgICBVcGRhdGVUaW1lRGVzdGluYXRpb25UaW1lICAgICAgICA9PiAxMjc3MzExODc1LAogICAgICAgICAgICBVcGRhdGVUaW1lRXNjYWxhdGlvbiAgICAgICAgICAgICA9PiAxLAogICAgICAgICAgICBVcGRhdGVUaW1lV29ya2luZ1RpbWUgICAgICAgICAgICA9PiAtMTI2MCwKICAgICAgICAgICAgU2VlbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gMSwgIyBvbmx5IG9uIG90cnMgMy54IGZyYW1ld29yawogICAgICAgIH0sCiAgICApOwoKPWN1dAoKc3ViIFF1ZXVlVmlldyB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15IEBWaWV3YWJsZUxvY2tJRHMgPSAkU2VsZi0+e0xvY2tPYmplY3R9LT5Mb2NrVmlld2FibGVMb2NrKCBUeXBlID0+ICdJRCcgKTsKCiAgICBteSBAVmlld2FibGVTdGF0ZUlEcyA9ICRTZWxmLT57U3RhdGVPYmplY3R9LT5TdGF0ZUdldFN0YXRlc0J5VHlwZSgKICAgICAgICBUeXBlICAgPT4gJ1ZpZXdhYmxlJywKICAgICAgICBSZXN1bHQgPT4gJ0lEJywKICAgICk7CgogICAgIyBkbyBzaG93biB0aWNrZXRzIGxvb2t1cAogICAgbXkgJExpbWl0ID0gJFBhcmFte0xpbWl0fSB8fCAxMDA7CiAgICBpZiAoICRQYXJhbXtRdWV1ZUlEfSApIHsKICAgICAgICBteSBAVmlld2FibGVUaWNrZXRzID0gJFNlbGYtPntUaWNrZXRPYmplY3R9LT5UaWNrZXRTZWFyY2goCgogICAgICAgICAgICBPcmRlckJ5ICAgID0+ICRQYXJhbXtPcmRlckJ5fSwKICAgICAgICAgICAgU29ydEJ5ICAgICA9PiAkUGFyYW17U29ydEJ5fSwKICAgICAgICAgICAgU3RhdGVJRHMgICA9PiBcQFZpZXdhYmxlU3RhdGVJRHMsCiAgICAgICAgICAgIExvY2tJRHMgICAgPT4gXEBWaWV3YWJsZUxvY2tJRHMsCiAgICAgICAgICAgIFF1ZXVlSURzICAgPT4gWyAkUGFyYW17UXVldWVJRH0gXSwKICAgICAgICAgICAgUGVybWlzc2lvbiA9PiAncncnLAogICAgICAgICAgICBVc2VySUQgICAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICBMaW1pdCAgICAgID0+ICRMaW1pdCwKICAgICAgICAgICAgUmVzdWx0ICAgICA9PiAnQVJSQVknLAogICAgICAgICk7CiAgICAgICAgbXkgQExpc3Q7CiAgICAgICAgZm9yIG15ICRUaWNrZXRJRCAoQFZpZXdhYmxlVGlja2V0cykgewogICAgICAgICAgICBuZXh0IGlmICEkVGlja2V0SUQ7CiAgICAgICAgICAgIG15ICVBcnRpY2xlID0gJFNlbGYtPlRpY2tldExpc3QoIFRpY2tldElEID0+ICRUaWNrZXRJRCwgVXNlcklEID0+ICRQYXJhbXtVc2VySUR9ICk7CiAgICAgICAgICAgIG5leHQgaWYgISVBcnRpY2xlOwogICAgICAgICAgICBwdXNoIEBMaXN0LCBcJUFydGljbGU7CiAgICAgICAgfQogICAgICAgIHJldHVybiBATGlzdDsKICAgIH0KCiAgICBteSAlQWxsUXVldWVzID0gJFNlbGYtPntRdWV1ZU9iamVjdH0tPlF1ZXVlTGlzdCggVmFsaWQgPT4gMCApOwoKICAgIG15IEBRdWV1ZXM7CiAgICBteSAlUXVldWVTdW07CiAgICBmb3IgbXkgJFF1ZXVlSUQgKCBzb3J0IGtleXMgJUFsbFF1ZXVlcyApIHsKICAgICAgICBteSAlUXVldWUgPSAkU2VsZi0+e1F1ZXVlT2JqZWN0fS0+UXVldWVHZXQoCiAgICAgICAgICAgIElEID0+ICRRdWV1ZUlELAogICAgICAgICk7CgogICAgICAgIG15ICRDb3VudCA9ICRTZWxmLT57VGlja2V0T2JqZWN0fS0+VGlja2V0U2VhcmNoKAogICAgICAgICAgICBTdGF0ZUlEcyA9PiBcQFZpZXdhYmxlU3RhdGVJRHMsCiAgICAgICAgICAgIExvY2tJRHMgID0+IFxAVmlld2FibGVMb2NrSURzLAogICAgICAgICAgICBRdWV1ZUlEcyA9PiBbJFF1ZXVlSURdLAoKICAgICAgICAgICAgUGVybWlzc2lvbiA9PiAncncnLAogICAgICAgICAgICBVc2VySUQgICAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICBSZXN1bHQgICAgID0+ICdDT1VOVCcsCiAgICAgICAgICAgIExpbWl0ICAgICAgPT4gMTAwMCwKICAgICAgICApOwogICAgICAgIG5leHQgaWYgISRDb3VudDsKCiAgICAgICAgbXkgJENvdW50TmV3ID0gJFNlbGYtPntUaWNrZXRPYmplY3R9LT5UaWNrZXRTZWFyY2goCiAgICAgICAgICAgIFN0YXRlSURzID0+IFxAVmlld2FibGVTdGF0ZUlEcywKICAgICAgICAgICAgTG9ja0lEcyAgPT4gXEBWaWV3YWJsZUxvY2tJRHMsCiAgICAgICAgICAgIFF1ZXVlSURzID0+IFskUXVldWVJRF0sCgogICAgICAgICAgICBUaWNrZXRGbGFnID0+IHsKICAgICAgICAgICAgICAgIFNlZW4gPT4gMSwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgVGlja2V0RmxhZ1VzZXJJRCA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgUGVybWlzc2lvbiAgICAgICA9PiAncncnLAogICAgICAgICAgICBVc2VySUQgICAgICAgICAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICBSZXN1bHQgICAgICAgICAgID0+ICdDT1VOVCcsCiAgICAgICAgICAgIExpbWl0ICAgICAgICAgICAgPT4gMTAwMCwKICAgICAgICApOwogICAgICAgICRDb3VudE5ldyA9ICRDb3VudCAtICRDb3VudE5ldzsKCiAgICAgICAgcHVzaCBAUXVldWVzLCB7CiAgICAgICAgICAgIFF1ZXVlSUQgICA9PiAkUXVldWVJRCwKICAgICAgICAgICAgUXVldWVOYW1lID0+ICRRdWV1ZXtOYW1lfSwKICAgICAgICAgICAgQ29tbWVudCAgID0+ICRRdWV1ZXtDb21tZW50fSwKCiAgICAgICAgICAgIE51bWJlck9mVGlja2V0cyAgICAgICAgICAgICAgICA9PiAkQ291bnQsCiAgICAgICAgICAgIE51bWJlck9mVGlja2V0c1dpdGhOZXdNZXNzYWdlcyA9PiAkQ291bnROZXcsCiAgICAgICAgfTsKICAgIH0KCiAgICByZXR1cm4gQFF1ZXVlczsKfQoKPWl0ZW0gVGlja2V0TGlzdCgpCgpHZXQgdGhlIGxhc3QgY3VzdG9tZXIgYXJ0aWNsZSBpbmZvcm1hdGlvbiBvZiBhIHRpY2tldAoKICAgIG15IEBSZXN1bHQgPSAkaVBob25lT2JqZWN0LT5UaWNrZXRMaXN0KAogICAgICAgIFVzZXJJRCAgID0+IDEsCiAgICAgICAgVGlja2V0SUQgID0+IDE3NiwKICAgICk7CgogICAgI2EgcmVzdWx0IGNvdWxkIGJlCgogICAgQFJlc3VsdCA9ICgKICAgICAgICB7CiAgICAgICAgICAgIEFnZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0+IDE1OTYsCiAgICAgICAgICAgIEFydGljbGVJRCAgICAgICAgICAgICAgICAgICAgICAgID0+IDkyMywKICAgICAgICAgICAgQXJ0aWNsZVR5cGUgICAgICAgICAgICAgICAgICAgICAgPT4gInBob25lIiwKICAgICAgICAgICAgQm9keSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gIlRoaXMgaXMgYW4gb3BlbiB0aWNrZXQiLAogICAgICAgICAgICBDaGFyc2V0ICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAidXRmLTgiLAogICAgICAgICAgICBDb250ZW50Q2hhcnNldCAgICAgICAgICAgICAgICAgICA9PiAidXRmLTgiLAogICAgICAgICAgICBDb250ZW50VHlwZSAgICAgICAgICAgICAgICAgICAgICA9PiAidGV4dC9wbGFpbjsiLAogICAgICAgICAgICBjaGFyc2V0ICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAidXRmLTgiLAogICAgICAgICAgICBDcmVhdGVkICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAiMjAxMC0wNi0yMyAxMTo0NjoxNSIsCiAgICAgICAgICAgIENyZWF0ZWRCeSAgICAgICAgICAgICAgICAgICAgICAgID0+IDEsCiAgICAgICAgICAgIEZpcnN0UmVzcG9uc2VUaW1lICAgICAgICAgICAgICAgID0+IC0xMjk2LAogICAgICAgICAgICBGaXJzdFJlc3BvbnNlVGltZURlc3RpbmF0aW9uRGF0ZSA9PiAiMjAxMC0wNi0yMyAxMTo1MToxNCIsCiAgICAgICAgICAgIEZpcnN0UmVzcG9uc2VUaW1lRGVzdGluYXRpb25UaW1lID0+IDEyNzczMTE4NzQsCiAgICAgICAgICAgIEZpcnN0UmVzcG9uc2VUaW1lRXNjYWxhdGlvbiAgICAgID0+IDEsCiAgICAgICAgICAgIEZpcnN0UmVzcG9uc2VUaW1lV29ya2luZ1RpbWUgICAgID0+IC0xMjYwLAogICAgICAgICAgICBGcm9tICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAiY3VzdG9tZXJAb3Rycy5vcmciLAogICAgICAgICAgICBJbmNvbWluZ1RpbWUgICAgICAgICAgICAgICAgICAgICA9PiAxMjc3MzExNTc1LAogICAgICAgICAgICBMb2NrICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAibG9jayIsCiAgICAgICAgICAgIE1pbWVUeXBlICAgICAgICAgICAgICAgICAgICAgICAgID0+ICJ0ZXh0L3BsYWluIiwKICAgICAgICAgICAgT3duZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gIkFnZW50MSIsCiAgICAgICAgICAgIFByaW9yaXR5ICAgICAgICAgICAgICAgICAgICAgICAgID0+ICIzIG5vcm1hbCIsCiAgICAgICAgICAgIFByaW9yaXR5Q29sb3IgICAgICAgICAgICAgICAgICAgID0+ICIjY2RjZGNkIiwKICAgICAgICAgICAgUXVldWUgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gIk1pc2MiLAogICAgICAgICAgICBSZXNwb25zaWJsZSAgICAgICAgICAgICAgICAgICAgICA9PiAiQWdlbnQxIiwKICAgICAgICAgICAgU2VuZGVyVHlwZSAgICAgICAgICAgICAgICAgICAgICAgPT4gImN1c3RvbWVyIiwKICAgICAgICAgICAgU29sdXRpb25UaW1lICAgICAgICAgICAgICAgICAgICAgPT4gLTEyOTYsCiAgICAgICAgICAgIFNvbHV0aW9uVGltZURlc3RpbmF0aW9uRGF0ZSAgICAgID0+ICIyMDEwLTA2LTIzIDExOjUxOjE0IiwKICAgICAgICAgICAgU29sdXRpb25UaW1lRGVzdGluYXRpb25UaW1lICAgICAgPT4gMTI3NzMxMTg3NCwKICAgICAgICAgICAgU29sdXRpb25UaW1lRXNjYWxhdGlvbiAgICAgICAgICAgPT4gMSwKICAgICAgICAgICAgU29sdXRpb25UaW1lV29ya2luZ1RpbWUgICAgICAgICAgPT4gLTEyNjAsCiAgICAgICAgICAgIFN0YXRlICAgICAgICAgICAgICAgICAgICAgICAgICAgID0+ICJvcGVuIiwKICAgICAgICAgICAgU3ViamVjdCAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gIk9wZW4gVGlja2V0IFRlc3QiLAogICAgICAgICAgICBUaWNrZXRJRCAgICAgICAgICAgICAgICAgICAgICAgICA9PiAxNzYsCiAgICAgICAgICAgIFRpY2tldE51bWJlciAgICAgICAgICAgICAgICAgICAgID0+IDIwMTAwNjIzMTAwMDAwMTUsCiAgICAgICAgICAgIFRpdGxlICAgICAgICAgICAgICAgICAgICAgICAgICAgID0+ICJPcGVuIFRpY2tldCBUZXN0IiwKICAgICAgICAgICAgVG8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gIkp1bmsiLAogICAgICAgICAgICBUeXBlICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAiSW5jaWRlbnQiLAogICAgICAgICAgICBVbnRpbFRpbWUgICAgICAgICAgICAgICAgICAgICAgICA9PiAwLAogICAgICAgICAgICBVcGRhdGVUaW1lICAgICAgICAgICAgICAgICAgICAgICA9PiAtMTI5NSwKICAgICAgICAgICAgVXBkYXRlVGltZURlc3RpbmF0aW9uRGF0ZSAgICAgICAgPT4gIjIwMTAtMDYtMjMgMTE6NTE6MTUiLAogICAgICAgICAgICBVcGRhdGVUaW1lRGVzdGluYXRpb25UaW1lICAgICAgICA9PiAxMjc3MzExODc1LAogICAgICAgICAgICBVcGRhdGVUaW1lRXNjYWxhdGlvbiAgICAgICAgICAgICA9PiAxLAogICAgICAgICAgICBVcGRhdGVUaW1lV29ya2luZ1RpbWUgICAgICAgICAgICA9PiAtMTI2MCwKICAgICAgICAgICAgU2VlbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gMSwgIyBvbmx5IG9uIG90cnMgMy54IGZyYW1ld29yawogICAgICAgIH0sCiAgICApOwoKPWN1dAoKc3ViIFRpY2tldExpc3QgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAlQ29sb3IgPSAoCiAgICAgICAgMSA9PiAnI2NkY2RjZCcsCiAgICAgICAgMiA9PiAnI2NkY2RjZCcsCiAgICAgICAgMyA9PiAnI2NkY2RjZCcsCiAgICAgICAgNCA9PiAnI2ZmYWFhYScsCiAgICAgICAgNSA9PiAnI2ZmNTA1ZScsCiAgICApOwoKICAgIG15ICVBcnRpY2xlID0gJFNlbGYtPntUaWNrZXRPYmplY3R9LT5BcnRpY2xlTGFzdEN1c3RvbWVyQXJ0aWNsZSgKICAgICAgICBUaWNrZXRJRCA9PiAkUGFyYW17VGlja2V0SUR9LAogICAgKTsKICAgIGlmICglQXJ0aWNsZSkgewogICAgICAgICRBcnRpY2xle1ByaW9yaXR5Q29sb3J9ID0gJENvbG9yeyAkQXJ0aWNsZXtQcmlvcml0eUlEfSB9OwoKICAgICAgICBteSAlVGlja2V0RmxhZyA9ICRTZWxmLT57VGlja2V0T2JqZWN0fS0+VGlja2V0RmxhZ0dldCgKICAgICAgICAgICAgVGlja2V0SUQgPT4gJFBhcmFte1RpY2tldElEfSwKICAgICAgICAgICAgVXNlcklEICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgKTsKICAgICAgICBpZiAoICRUaWNrZXRGbGFne3NlZW59IHx8ICRUaWNrZXRGbGFne1NlZW59ICkgewogICAgICAgICAgICAkQXJ0aWNsZXtTZWVufSA9IDE7CiAgICAgICAgfQoKICAgICAgICAjIHN0cmlwIG91dCBhbGwgZGF0YQogICAgICAgIG15IEBEZWxldGUgPSBxdygKICAgICAgICAgICAgUmVwbHlUbyBNZXNzYWdlSUQgSW5SZXBseVRvIFJlZmVyZW5jZXMgQWdlVGltZVVuaXggQ3JlYXRlVGltZVVuaXggU2VuZGVyVHlwZUlECiAgICAgICAgICAgIEluY29taW5nVGltZSBSZWFsVGlsbFRpbWVOb3RVc2VkIFNlcnZpY2VJRCBTTEFJRCBTdGF0ZVR5cGUgQXJjaGl2ZUZsYWcgVW5sb2NrVGltZW91dAogICAgICAgICAgICBDaGFuZ2VkCiAgICAgICAgICAgICkKICAgICAgICAgICAgOwoKICAgICAgICBmb3IgbXkgJEtleSAoQERlbGV0ZSkgewogICAgICAgICAgICBkZWxldGUgJEFydGljbGV7JEtleX07CiAgICAgICAgfQoKICAgICAgICBmb3IgbXkgJEtleSAoIHNvcnQga2V5cyAlQXJ0aWNsZSApIHsKICAgICAgICAgICAgaWYgKCAhZGVmaW5lZCAkQXJ0aWNsZXskS2V5fSB8fCAkQXJ0aWNsZXskS2V5fSBlcSAnJyApIHsKICAgICAgICAgICAgICAgIGRlbGV0ZSAkQXJ0aWNsZXskS2V5fTsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoICRLZXkgPX4gL15Fc2NhbGEvICkgewogICAgICAgICAgICAgICAgZGVsZXRlICRBcnRpY2xleyRLZXl9OwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gJUFydGljbGU7CiAgICB9CgogICAgIyByZXR1cm4gb25seSB0aWNrZXQgaW5mb3JtYXRpb24gaWYgdGlja2V0IGhhcyBubyBhcnRpY2xlcwogICAgbXkgJVRpY2tldERhdGEgPSAkU2VsZi0+VGlja2V0R2V0KAogICAgICAgIFRpY2tldElEID0+ICRQYXJhbXtUaWNrZXRJRH0sCiAgICAgICAgVXNlcklEICAgPT4gJFBhcmFte1VzZXJJRH0KICAgICk7CiAgICByZXR1cm4gJVRpY2tldERhdGE7Cn0KCj1pdGVtIFRpY2tldEdldCgpCkdldCBpbmZvcm1hdGlvbiBvZiBhIHRpY2tldAoKICAgIG15IEBSZXN1bHQgPSAkaVBob25lT2JqZWN0LT5UaWNrZXRHZXQoCiAgICAgICAgVGlja2V0SUQgID0+IDIyNCwKICAgICAgICBVc2VySUQgICAgPT4gMSwKICAgICk7CgogICAgI2EgcmVzdWx0IGNvdWxkIGJlCgogICAgQFJlc3VsdCA9ICgKICAgICAgICBBY2NvdW50ZWRUaW1lICAgPT4gIjU0MDQiLAogICAgICAgIEFnZSAgICAgICAgICAgICA9PiAiNjgxOTQ2IiwKICAgICAgICBDdXN0b21lcklEICAgICAgPT4gInN3IiwKICAgICAgICBDdXN0b21lclVzZXJJRCAgPT4gIkRhdmlkIiwKICAgICAgICBDcmVhdGVkICAgICAgICAgPT4gIjIwMTAtMDctMDYgMTQ6MDU6NTQiLAogICAgICAgIEdyb3VwSUQgICAgICAgICA9PiAxLAogICAgICAgIFRpY2tldElEICAgICAgICA9PiAyMjQsCiAgICAgICAgTG9ja0lEICAgICAgICAgID0+IDIsCiAgICAgICAgTG9jayAgICAgICAgICAgID0+ICJsb2NrIgogICAgICAgIE93bmVySUQgICAgICAgICA9PiAxMTM0LAogICAgICAgIE93bmVyICAgICAgICAgICA9PiAiQWF5bGEiLAogICAgICAgIFByaW9yaXR5Q29sb3IgICA9PiAiI2NkY2RjZCIsCiAgICAgICAgUHJpb3JpdHlJRCAgICAgID0+IDEsCiAgICAgICAgUHJpb3JpdHkgICAgICAgID0+ICIxIHZlcnkgbG93IiwKICAgICAgICBRdWV1ZSAgICAgICAgICAgPT4gIlJhdyIsCiAgICAgICAgUXVldWVJRCAgICAgICAgID0+IDIsCiAgICAgICAgUmVzcG9uc2libGVJRCAgID0+IDExMzQsCiAgICAgICAgUmVzcG9uc2libGUgICAgID0+ICJBYXlsYSIsCiAgICAgICAgU2VlbiAgICAgICAgICAgID0+IDEsICMgb25seSBvbiBvdHJzIDMueCBmcmFtZXdvcmsKICAgICAgICBTdGF0ZUlEICAgICAgICAgPT4gIDQsCiAgICAgICAgU3RhdGUgICAgICAgICAgID0+ICJvcGVuIiwKICAgICAgICBUaWNrZXROdW1iZXIgICAgPT4gIjIwMTAwNzA2MTAwMDAyMTUiLAogICAgICAgIFRpdGxlICAgICAgICAgICA9PiAiaVBob25lIFRlc3QiLAogICAgICAgIFR5cGVJRCAgICAgICAgICA9PiAxLAogICAgICAgIFR5cGUgICAgICAgICAgICA9PiAiZGVmYXVsdCIsCiAgICAgICAgVW50aWxUaW1lICAgICAgID0+ICIwIiwKICAgICk7Cgo9Y3V0CgpzdWIgVGlja2V0R2V0IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBwZXJtaXNzaW9uIGNoZWNrCiAgICBteSAkQWNjZXNzID0gJFNlbGYtPntUaWNrZXRPYmplY3R9LT5UaWNrZXRQZXJtaXNzaW9uKAogICAgICAgIFR5cGUgICAgID0+ICdybycsCiAgICAgICAgVGlja2V0SUQgPT4gJFBhcmFte1RpY2tldElEfSwKICAgICAgICBVc2VySUQgICA9PiAkUGFyYW17VXNlcklEfQogICAgKTsKICAgIGlmICggISRBY2Nlc3MgKSB7CiAgICAgICAgJFNlbGYtPntMb2dPYmplY3R9LT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJZb3UgbmVlZCBybyBwZXJtaXNzaW9ucyEiLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgIG15ICVDb2xvciA9ICgKICAgICAgICAxID0+ICcjY2RjZGNkJywKICAgICAgICAyID0+ICcjY2RjZGNkJywKICAgICAgICAzID0+ICcjY2RjZGNkJywKICAgICAgICA0ID0+ICcjZmZhYWFhJywKICAgICAgICA1ID0+ICcjZmY1MDVlJywKICAgICk7CgogICAgbXkgJVRpY2tldCA9ICRTZWxmLT57VGlja2V0T2JqZWN0fS0+VGlja2V0R2V0KCVQYXJhbSk7CgogICAgJFRpY2tldHtQcmlvcml0eUNvbG9yfSA9ICRDb2xvcnsgJFRpY2tldHtQcmlvcml0eUlEfSB9OwoKICAgIG15ICVUaWNrZXRGbGFnID0gJFNlbGYtPntUaWNrZXRPYmplY3R9LT5UaWNrZXRGbGFnR2V0KAogICAgICAgIFRpY2tldElEID0+ICRQYXJhbXtUaWNrZXRJRH0sCiAgICAgICAgVXNlcklEICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICApOwogICAgaWYgKCAkVGlja2V0RmxhZ3tzZWVufSB8fCAkVGlja2V0RmxhZ3tTZWVufSApIHsKICAgICAgICAkVGlja2V0e1NlZW59ID0gMTsKICAgIH0KICAgIGVsc2UgewoKICAgICAgICAjIGNoZWNrIGlmIHRpY2tldCBuZWVkIHRvIGJlIG1hcmtlZCBhcyBzZWVuCiAgICAgICAgbXkgJEFydGljbGVBbGxTZWVuID0gMTsKICAgICAgICBteSBASW5kZXggPSAkU2VsZi0+e1RpY2tldE9iamVjdH0tPkFydGljbGVJbmRleCggVGlja2V0SUQgPT4gJFRpY2tldHtUaWNrZXRJRH0gKTsKICAgICAgICBpZiAoIElzQXJyYXlSZWZXaXRoRGF0YSggXEBJbmRleCApICkgewogICAgICAgICAgICBmb3IgbXkgJEFydGljbGVJRCAoQEluZGV4KSB7CiAgICAgICAgICAgICAgICBteSAlQXJ0aWNsZUZsYWcgPSAkU2VsZi0+e1RpY2tldE9iamVjdH0tPkFydGljbGVGbGFnR2V0KAogICAgICAgICAgICAgICAgICAgIEFydGljbGVJRCA9PiAkQXJ0aWNsZUlELAogICAgICAgICAgICAgICAgICAgIFVzZXJJRCAgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgIyBsYXN0IGlmIGFydGljbGUgd2FzIG5vdCBzaG93bgogICAgICAgICAgICAgICAgaWYgKCAhJEFydGljbGVGbGFne1NlZW59ICYmICEkQXJ0aWNsZUZsYWd7c2Vlbn0gKSB7CiAgICAgICAgICAgICAgICAgICAgJEFydGljbGVBbGxTZWVuID0gMDsKICAgICAgICAgICAgICAgICAgICBsYXN0OwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICAjIG1hcmsgdGlja2V0IGFzIHNlZW4gaWYgYWxsIGFydGljbGUgYXJlIHNob3duCiAgICAgICAgICAgIGlmICgkQXJ0aWNsZUFsbFNlZW4pIHsKICAgICAgICAgICAgICAgICRTZWxmLT57VGlja2V0T2JqZWN0fS0+VGlja2V0RmxhZ1NldCgKICAgICAgICAgICAgICAgICAgICBUaWNrZXRJRCA9PiAkVGlja2V0e1RpY2tldElEfSwKICAgICAgICAgICAgICAgICAgICBLZXkgICAgICA9PiAnU2VlbicsCiAgICAgICAgICAgICAgICAgICAgVmFsdWUgICAgPT4gMSwKICAgICAgICAgICAgICAgICAgICBVc2VySUQgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgIyBhZGQgYWNjb3VudGVkIHRpbWUKICAgIG15ICRBY2NvdW50ZWRUaW1lID0gJFNlbGYtPntUaWNrZXRPYmplY3R9LT5UaWNrZXRBY2NvdW50ZWRUaW1lR2V0KCVQYXJhbSk7CiAgICBpZiAoIGRlZmluZWQgJEFjY291bnRlZFRpbWUgKSB7CiAgICAgICAgJFRpY2tldHtBY2NvdW50ZWRUaW1lfSA9ICRBY2NvdW50ZWRUaW1lOwogICAgfQoKICAgICMgc3RyaXAgb3V0IGFsbCBkYXRhCiAgICBteSBARGVsZXRlID0gcXcoCiAgICAgICAgUmVwbHlUbyBNZXNzYWdlSUQgSW5SZXBseVRvIFJlZmVyZW5jZXMgQWdlVGltZVVuaXggQ3JlYXRlVGltZVVuaXggU2VuZGVyVHlwZUlECiAgICAgICAgSW5jb21pbmdUaW1lIFJlYWxUaWxsVGltZU5vdFVzZWQgU2VydmljZUlEIFNMQUlEIFN0YXRlVHlwZSBBcmNoaXZlRmxhZyBVbmxvY2tUaW1lb3V0CiAgICAgICAgQ2hhbmdlZAogICAgICAgICkKICAgICAgICA7CgogICAgZm9yIG15ICRLZXkgKEBEZWxldGUpIHsKICAgICAgICBkZWxldGUgJFRpY2tldHskS2V5fTsKICAgIH0KICAgIGZvciBteSAkS2V5ICggc29ydCBrZXlzICVUaWNrZXQgKSB7CiAgICAgICAgaWYgKCAhZGVmaW5lZCAkVGlja2V0eyRLZXl9IHx8ICRUaWNrZXR7JEtleX0gZXEgJycgKSB7CiAgICAgICAgICAgIGRlbGV0ZSAkVGlja2V0eyRLZXl9OwogICAgICAgIH0KICAgICAgICBpZiAoICRLZXkgPX4gL15Fc2NhbGEvICkgewogICAgICAgICAgICBkZWxldGUgJFRpY2tldHskS2V5fTsKICAgICAgICB9CiAgICB9CiAgICByZXR1cm4gJVRpY2tldDsKfQoKPWl0ZW0gQXJ0aWNsZUdldCgpCgpHZXQgaW5mb3JtYXRpb24gZnJvbSBhbiBhcnRpY2xlCgogICAgbXkgJVJlc3VsdCA9ICRpUGhvbmVPYmplY3QtPkFydGljbGVHZXQoKQogICAgICAgIEFydGljbGVJRCAgPT4gMTA1NCwKICAgICAgICBVc2VySUQgICAgID0+IDEsCiAgICApOwoKICAgICNhIHJlc3VsdCBjb3VsZCBiZQoKICAgICVSZXN1dGwgPSAoCiAgICAgICAgQWdlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gMTY2MjAyLAogICAgICAgIEFjY291bnRlZFRpbWUgICAgICAgICAgICAgICAgICAgID0+IDEyMywKICAgICAgICBBcnRpY2xlSUQgICAgICAgICAgICAgICAgICAgICAgICA9PiAxMDU0LAogICAgICAgIEFydGljbGVUeXBlSUQgICAgICAgICAgICAgICAgICAgID0+IDUsCiAgICAgICAgQXJ0aWNsZVR5cGUgICAgICAgICAgICAgICAgICAgICAgPT4gInBob25lIiwKICAgICAgICBCb2R5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAiaVBob25lIHRpY2tldCBUZXN0IiwKICAgICAgICBDaGFyc2V0ICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAidXRmLTgiLAogICAgICAgIENvbnRlbnRDaGFyc2V0ICAgICAgICAgICAgICAgICAgID0+ICJ1dGYtOCIsCiAgICAgICAgQ29udGVudFR5cGUgICAgICAgICAgICAgICAgICAgICAgPT4gInRleHQvcGxhaW47IGNoYXJzZXQ9dXRmLTgiLAogICAgICAgIENyZWF0ZWQgICAgICAgICAgICAgICAgICAgICAgICAgID0+ICIyMDEwLTA3LTEyIDE0OjEzOjA2IiwKICAgICAgICBDcmVhdGVkQnkgICAgICAgICAgICAgICAgICAgICAgICA9PiAxMTM0LAogICAgICAgIEN1c3RvbWVySUQgICAgICAgICAgICAgICAgICAgICAgID0+ICJzdyIsCiAgICAgICAgQ3VzdG9tZXJVc2VySUQgICAgICAgICAgICAgICAgICAgPT4gIkRhdmlkIiwKICAgICAgICBGaXJzdFJlc3BvbnNlVGltZURlc3RpbmF0aW9uRGF0ZSA9PiAiMjAxMC0wNy0xMiAxNDoxODowNiIsCiAgICAgICAgRmlyc3RSZXNwb25zZVRpbWVEZXN0aW5hdGlvblRpbWUgPT4gIjEyNzg5NjIyODYiLAogICAgICAgIEZpcnN0UmVzcG9uc2VUaW1lRXNjYWxhdGlvbiAgICAgID0+IDEsCiAgICAgICAgRmlyc3RSZXNwb25zZVRpbWVXb3JraW5nVGltZSAgICAgPT4gLTg2NzAwLAogICAgICAgIEZpcnN0UmVzcG9uc2VUaW1lICAgICAgICAgICAgICAgID0+IC0xNjU5MDIsCiAgICAgICAgRnJvbSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gIlwiRGF2aWQgUHJvd3NlXCIgPHBkQHN3LmNvbT4iLAogICAgICAgIExvY2tJRCAgICAgICAgICAgICAgICAgICAgICAgICAgID0+IDIsCiAgICAgICAgTG9jayAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gImxvY2siLAogICAgICAgIE1pbWVUeXBlICAgICAgICAgICAgICAgICAgICAgICAgID0+ICJ0ZXh0L3BsYWluIiwKICAgICAgICBPd25lcklEICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAxMTM0LAogICAgICAgIE93bmVyICAgICAgICAgICAgICAgICAgICAgICAgICAgID0+ICJBYXlsYSIsCiAgICAgICAgUHJpb3JpdHlJRCAgICAgICAgICAgICAgICAgICAgICAgPT4gMSwKICAgICAgICBQcmlvcml0eSAgICAgICAgICAgICAgICAgICAgICAgICA9PiAiMSB2ZXJ5IGxvdyIsCiAgICAgICAgUXVldWVJRCAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gMywKICAgICAgICBRdWV1ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAiSnVuayIsCiAgICAgICAgUmVzcG9uc2libGVJRCAgICAgICAgICAgICAgICAgICAgPT4gMTEzNCwKICAgICAgICBSZXNwb25zaWJsZSAgICAgICAgICAgICAgICAgICAgICA9PiAiQWF5bGEiLAogICAgICAgIFNlZW4gICAgICAgICAgICAgICAgICAgICAgICAgICAgID0+IDEsICMgb25seSBvbiBvdHJzIDMueCBmcmFtZXdvcmsKICAgICAgICBTZW5kZXJUeXBlICAgICAgICAgICAgICAgICAgICAgICA9PiAiY3VzdG9tZXIiLAogICAgICAgIFNvbHV0aW9uVGltZURlc3RpbmF0aW9uRGF0ZSAgICAgID0+ICIyMDEwLTA3LTEyIDE0OjE4OjA2IiwKICAgICAgICBTb2x1dGlvblRpbWVEZXN0aW5hdGlvblRpbWUgICAgICA9PiAxMjc4OTYyMjg2LAogICAgICAgIFNvbHV0aW9uVGltZVdvcmtpbmdUaW1lICAgICAgICAgID0+IC04NjcwMCwKICAgICAgICBTb2x1dGlvblRpbWVFc2NhbGF0aW9uICAgICAgICAgICA9PiAxLAogICAgICAgIFNvbHV0aW9uVGltZSAgICAgICAgICAgICAgICAgICAgID0+IC0xNjU5MDIsCiAgICAgICAgU3RhdGVJRCAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gNCwKICAgICAgICBTdWJqZWN0ICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAiaVBob25lIFRlc3QiLAogICAgICAgIFN0YXRlICAgICAgICAgICAgICAgICAgICAgICAgICAgID0+ICJvcGVuIiwKICAgICAgICBUaWNrZXRJRCAgICAgICAgICAgICAgICAgICAgICAgICA9PiAyNDcsCiAgICAgICAgVGlja2V0TnVtYmVyICAgICAgICAgICAgICAgICAgICAgPT4gIjIwMTAwNzEyMTAwMDAwNDMiLAogICAgICAgIFRpdGxlICAgICAgICAgICAgICAgICAgICAgICAgICAgID0+ICJpUGhvbmUgVGVzdCIsCiAgICAgICAgVG8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gIkp1bmsiLAogICAgICAgIFR5cGVJRCAgICAgICAgICAgICAgICAgICAgICAgICAgID0+IDEsCiAgICAgICAgVHlwZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gImRlZmF1bHQiLAogICAgICAgIFVwZGF0ZVRpbWVEZXN0aW5hdGlvbkRhdGUgICAgICAgID0+ICIyMDEwLTA3LTEyIDE0OjE4OjA2IiwKICAgICAgICBVcGRhdGVUaW1lRGVzdGluYXRpb25UaW1lICAgICAgICA9PiAxMjc4OTYyMjg2LAogICAgICAgIFVwZGF0ZVRpbWVFc2NhbGF0aW9uICAgICAgICAgICAgID0+IDEsCiAgICAgICAgVXBkYXRlVGltZVdvcmtpbmdUaW1lICAgICAgICAgICAgPT4gLTg2NzAwLAogICAgICAgIFVwZGF0ZVRpbWUgICAgICAgICAgICAgICAgICAgICAgID0+IC0xNjU5MDIsCiAgICAgICAgVW50aWxUaW1lICAgICAgICAgICAgICAgICAgICAgICAgPT4gMCwKICAgICk7Cgo9Y3V0CgpzdWIgQXJ0aWNsZUdldCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgcGVybWlzc2lvbiBjaGVjawogICAgbXkgJUFydGljbGUgPSAkU2VsZi0+e1RpY2tldE9iamVjdH0tPkFydGljbGVHZXQoJVBhcmFtKTsKICAgIG15ICRBY2Nlc3MgID0gJFNlbGYtPntUaWNrZXRPYmplY3R9LT5UaWNrZXRQZXJtaXNzaW9uKAogICAgICAgIFR5cGUgICAgID0+ICdybycsCiAgICAgICAgVGlja2V0SUQgPT4gJEFydGljbGV7VGlja2V0SUR9LAogICAgICAgIFVzZXJJRCAgID0+ICRQYXJhbXtVc2VySUR9CiAgICApOwogICAgaWYgKCAhJEFjY2VzcyApIHsKICAgICAgICAkU2VsZi0+e0xvZ09iamVjdH0tPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gIllvdSBuZWVkIHJvIHBlcm1pc3Npb25zISIsCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgaWYgKCVBcnRpY2xlKSB7CgogICAgICAgICMgY2hlY2sgaWYgYXJ0aWNsZSBpcyBzZWVuCiAgICAgICAgbXkgJUFydGljbGVGbGFnID0gJFNlbGYtPntUaWNrZXRPYmplY3R9LT5BcnRpY2xlRmxhZ0dldCgKICAgICAgICAgICAgQXJ0aWNsZUlEID0+ICRQYXJhbXtBcnRpY2xlSUR9LAogICAgICAgICAgICBVc2VySUQgICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgKTsKICAgICAgICBpZiAoICRBcnRpY2xlRmxhZ3tzZWVufSB8fCAkQXJ0aWNsZUZsYWd7U2Vlbn0gKSB7CiAgICAgICAgICAgICRBcnRpY2xle1NlZW59ID0gMTsKICAgICAgICB9CgogICAgICAgICMgbWFyayBzaG93biBhcnRpY2xlIGFzIHNlZW4KICAgICAgICAkU2VsZi0+e1RpY2tldE9iamVjdH0tPkFydGljbGVGbGFnU2V0KAogICAgICAgICAgICBBcnRpY2xlSUQgPT4gJFBhcmFte0FydGljbGVJRH0sCiAgICAgICAgICAgIEtleSAgICAgICA9PiAnU2VlbicsCiAgICAgICAgICAgIFZhbHVlICAgICA9PiAxLAogICAgICAgICAgICBVc2VySUQgICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgKTsKCiAgICAgICAgIyBjaGVjayBpZiB0aWNrZXQgbmVlZCB0byBiZSBtYXJrZWQgYXMgc2VlbgogICAgICAgIG15ICRBcnRpY2xlQWxsU2VlbiA9IDE7CiAgICAgICAgbXkgQEluZGV4ID0gJFNlbGYtPntUaWNrZXRPYmplY3R9LT5BcnRpY2xlSW5kZXgoIFRpY2tldElEID0+ICRBcnRpY2xle1RpY2tldElEfSApOwogICAgICAgIGlmICggSXNBcnJheVJlZldpdGhEYXRhKCBcQEluZGV4ICkgKSB7CiAgICAgICAgICAgIGZvciBteSAkQXJ0aWNsZUlEIChASW5kZXgpIHsKICAgICAgICAgICAgICAgIG15ICVBcnRpY2xlRmxhZyA9ICRTZWxmLT57VGlja2V0T2JqZWN0fS0+QXJ0aWNsZUZsYWdHZXQoCiAgICAgICAgICAgICAgICAgICAgQXJ0aWNsZUlEID0+ICRBcnRpY2xlSUQsCiAgICAgICAgICAgICAgICAgICAgVXNlcklEICAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICAjIGxhc3QgaWYgYXJ0aWNsZSB3YXMgbm90IHNob3duCiAgICAgICAgICAgICAgICBpZiAoICEkQXJ0aWNsZUZsYWd7U2Vlbn0gJiYgISRBcnRpY2xlRmxhZ3tzZWVufSApIHsKICAgICAgICAgICAgICAgICAgICAkQXJ0aWNsZUFsbFNlZW4gPSAwOwogICAgICAgICAgICAgICAgICAgIGxhc3Q7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgbWFyayB0aWNrZXQgYXMgc2VlbiBpZiBhbGwgYXJ0aWNsZSBhcmUgc2hvd24KICAgICAgICAgICAgaWYgKCRBcnRpY2xlQWxsU2VlbikgewogICAgICAgICAgICAgICAgJFNlbGYtPntUaWNrZXRPYmplY3R9LT5UaWNrZXRGbGFnU2V0KAogICAgICAgICAgICAgICAgICAgIFRpY2tldElEID0+ICRBcnRpY2xle1RpY2tldElEfSwKICAgICAgICAgICAgICAgICAgICBLZXkgICAgICA9PiAnU2VlbicsCiAgICAgICAgICAgICAgICAgICAgVmFsdWUgICAgPT4gMSwKICAgICAgICAgICAgICAgICAgICBVc2VySUQgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgICMgYWRkIGFjY291bnRlZCB0aW1lCiAgICAgICAgbXkgJEFjY291bnRlZFRpbWUgPSAkU2VsZi0+e1RpY2tldE9iamVjdH0tPkFydGljbGVBY2NvdW50ZWRUaW1lR2V0KCVQYXJhbSk7CiAgICAgICAgaWYgKCBkZWZpbmVkICRBY2NvdW50ZWRUaW1lICkgewogICAgICAgICAgICAkQXJ0aWNsZXtBY2NvdW50ZWRUaW1lfSA9ICRBY2NvdW50ZWRUaW1lOwogICAgICAgIH0KCiAgICAgICAgIyBzdHJpcCBvdXQgYWxsIGRhdGEKICAgICAgICBteSBARGVsZXRlID0gcXcoCiAgICAgICAgICAgIFJlcGx5VG8gTWVzc2FnZUlEIEluUmVwbHlUbyBSZWZlcmVuY2VzIEFnZVRpbWVVbml4IENyZWF0ZVRpbWVVbml4IFNlbmRlclR5cGVJRAogICAgICAgICAgICBJbmNvbWluZ1RpbWUgUmVhbFRpbGxUaW1lTm90VXNlZCBTZXJ2aWNlSUQgU0xBSURTdGF0ZVR5cGUgQXJjaGl2ZUZsYWcgVW5sb2NrVGltZW91dAogICAgICAgICAgICBDaGFuZ2VkCiAgICAgICAgICAgICkKICAgICAgICAgICAgOwoKICAgICAgICBmb3IgbXkgJEtleSAoQERlbGV0ZSkgewogICAgICAgICAgICBkZWxldGUgJEFydGljbGV7JEtleX07CiAgICAgICAgfQoKICAgICAgICBmb3IgbXkgJEtleSAoIHNvcnQga2V5cyAlQXJ0aWNsZSApIHsKICAgICAgICAgICAgaWYgKCAhZGVmaW5lZCAkQXJ0aWNsZXskS2V5fSB8fCAkQXJ0aWNsZXskS2V5fSBlcSAnJyApIHsKICAgICAgICAgICAgICAgIGRlbGV0ZSAkQXJ0aWNsZXskS2V5fTsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoICRLZXkgPX4gL15Fc2NhbGEvICkgewogICAgICAgICAgICAgICAgZGVsZXRlICRBcnRpY2xleyRLZXl9OwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gJUFydGljbGU7CiAgICB9CiAgICAkU2VsZi0+e0xvZ09iamVjdH0tPkxvZygKICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgIE1lc3NhZ2UgID0+ICdObyBBcnRpY2xlcyBmb3VuZCBpbiB0aGlzIHRpY2tldCcsCiAgICApOwogICAgcmV0dXJuIC0xOwp9Cgo9aXRlbSBTZXJ2aWNlc0dldCgpCkdldCBhIEhhc2ggcmVmZXJlbmNlIHRvIGFsbCBwb3NzaWJsZSBzZXJ2aWNlcyBiYXNlZCBvbiBhIFRpY2tldCBvciBRdWV1ZSBhbmQgQ3VzdG9tZXJVc2VyCgogICAgbXkgJFJlc3VsdCA9ICRpUGhvbmVPYmplY3QtPlNlcnZpY2VzR2V0KAogICAgICAgIFVzZXJJRCAgICAgICAgICA9PiAxLAogICAgICAgIFF1ZXVlSUQgICAgICAgICA9PiAzLCAgIyB8fCBUaWNrZXRJRCBPcHRpb25hbAogICAgICAgIFRpY2tldElEICAgICAgICA9PiAyMywgIyB8fCBRdWV1ZUlEIE9wdGlvbmFsCiAgICAgICAgQ3VzdG9tZXJVc2VySUQgID0+ICJDdXN0b21lciIsCiAgICApOwoKICAgICMgYSByZXN1bHQgY291bGQgYmUKCiAgICAkUmVzdWx0ID0gWwogICAgICAgIDEgPT4gIlNlcnZpY2UgQSIsCiAgICAgICAgMyA9PiAiU2VydmljZSBBOjpTdWJTZXJ2aWNlIDEiLAogICAgICAgIDIgPT4gIlNlcnZpY2UgQiIKICAgIF0sCj1jdXQKCnN1YiBTZXJ2aWNlc0dldCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICVTZXJ2aWNlID0gKCk7CgogICAgIyBnZXQgc2VydmljZQogICAgaWYgKCAoICRQYXJhbXtRdWV1ZUlEfSB8fCAkUGFyYW17VGlja2V0SUR9ICkgJiYgJFBhcmFte0N1c3RvbWVyVXNlcklEfSApIHsKICAgICAgICAlU2VydmljZSA9ICRTZWxmLT57VGlja2V0T2JqZWN0fS0+VGlja2V0U2VydmljZUxpc3QoCiAgICAgICAgICAgICVQYXJhbSwKICAgICAgICAgICAgQWN0aW9uID0+ICRQYXJhbXtBY3Rpb259LAogICAgICAgICAgICBVc2VySUQgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgKTsKICAgIH0KICAgIHJldHVybiBcJVNlcnZpY2U7Cn0KCj1pdGVtIFNMQXNHZXQoKQpHZXQgYSBIYXNoIHJlZmVyZW5jZSB0byBhbGwgcG9zc2libGUgU0xBcyBiYXNlZCBvbiBhIFNlcnZpY2UKCiAgICBteSAkUmVzdWx0ID0gJGlQaG9uZU9iamVjdC0+U0xBc0dldCgKICAgICAgICBTZXJ2aWNlSUQgICAgICAgPT4gMSwKICAgICAgICBRdWV1ZUlEICAgICAgICAgPT4gMywgICN8fCBUaWNrZVRJRCBvcHRpb25hbAogICAgICAgIFRpY2tldElEICAgICAgICA9PiAyMjMgI3x8IFF1ZXVlSUQgb3B0aW9uYWwKICAgICAgICBVc2VySUQgICAgICAgICAgPT4gMSwKICAgICk7CgogICAgIyBhIHJlc3VsdCBjb3VsZCBiZQoKICAgICRSZXN1bHQgPSBbCiAgICAgICAgMSA9PiAiU0xBIEdvbGQgZm9yIFNlcnZpY2UgQSIsCiAgICAgICAgMyA9PiAiU0xBIFNpbHZlciBmb3IgU2VydmljZSBBIiwKICAgIF0sCj1jdXQKCnN1YiBTTEFzR2V0IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgJVNMQSA9ICgpOwoKICAgICMgZ2V0IHNsYQogICAgaWYgKCAkUGFyYW17U2VydmljZUlEfSApIHsKICAgICAgICAlU0xBID0gJFNlbGYtPntUaWNrZXRPYmplY3R9LT5UaWNrZXRTTEFMaXN0KAogICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgICAgIEFjdGlvbiA9PiAkUGFyYW17QWN0aW9ufSwKICAgICAgICAgICAgVXNlcklEID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICk7CiAgICB9CiAgICByZXR1cm4gXCVTTEE7Cn0KCj1pdGVtIFVzZXJzR2V0KCkKR2V0IGEgSGFzaCByZWZlcmVuY2UgdG8gYWxsIHVzZXJzIHRoYXQgaGF2ZSByaWdodHMgb24gYSBRdWV1ZSBvciB0aGUgc3NlcnMgdGhhdCBoYXZlIHRoYXQgcXVldWUgaW4KdGhlICJNeSBRdWV1ZXMiIGxpc3QKCiAgICBteSAkUmVzdWx0ID0gJGlQaG9uZU9iamVjdC0+VXNlcnNHZXQoCiAgICAgICAgUXVldWVJRCAgICAgICAgID0+IDMsCiAgICAgICAgQWxsVXNlcnMgICAgICAgID0+IDEgIyBPcHRpb25hbCwgVG8gZ2V0IHRoZSBjb21wbGV0ZSBsaXN0IG9mIHVzZXJzIHdpdGggcmlnaHRzIGluIHRoZSBxdWV1ZQogICAgICAgIFVzZXJJRCAgICAgICAgICA9PiAxLAogICAgKTsKCiAgICAjIGEgcmVzdWx0IGNvdWxkIGJlCgogICAgJFJlc3VsdCA9IFsKICAgICAgICAxICAgID0+ICJPVFJTIEFkbWluIChyb290QGxvY2FsaG9zdCkiLAogICAgICAgIDExMzggPT4gIkFteSBBbGxlbiAoQWF5bGEpICIKICAgIF0sCj1jdXQKCnN1YiBVc2Vyc0dldCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgZ2V0IHVzZXJzCiAgICBteSAlU2hvd25Vc2VycyAgICAgICA9ICgpOwogICAgbXkgJUFsbEdyb3Vwc01lbWJlcnMgPSAkU2VsZi0+e1VzZXJPYmplY3R9LT5Vc2VyTGlzdCgKICAgICAgICBUeXBlICA9PiAnTG9uZycsCiAgICAgICAgVmFsaWQgPT4gMSwKICAgICk7CgogICAgIyBqdXN0IHNob3cgb25seSB1c2VycyB3aXRoIHNlbGVjdGVkIGN1c3RvbSBxdWV1ZQogICAgaWYgKCAkUGFyYW17UXVldWVJRH0gJiYgISRQYXJhbXtBbGxVc2Vyc30gKSB7CiAgICAgICAgbXkgQFVzZXJJRHMgPSAkU2VsZi0+e1RpY2tldE9iamVjdH0tPkdldFN1YnNjcmliZWRVc2VySURzQnlRdWV1ZUlEKCVQYXJhbSk7CiAgICAgICAgZm9yICggc29ydCBrZXlzICVBbGxHcm91cHNNZW1iZXJzICkgewogICAgICAgICAgICBteSAkSGl0ID0gMDsKICAgICAgICAgICAgZm9yIG15ICRVSUQgKEBVc2VySURzKSB7CiAgICAgICAgICAgICAgICBpZiAoICRVSUQgZXEgJF8gKSB7CiAgICAgICAgICAgICAgICAgICAgJEhpdCA9IDE7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKCAhJEhpdCApIHsKICAgICAgICAgICAgICAgIGRlbGV0ZSAkQWxsR3JvdXBzTWVtYmVyc3skX307CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgIyBzaG93IGFsbCBzeXN0ZW0gdXNlcnMKICAgIGlmICggJFNlbGYtPntDb25maWdPYmplY3R9LT5HZXQoJ1RpY2tldDo6Q2hhbmdlT3duZXJUb0V2ZXJ5b25lJykgKSB7CiAgICAgICAgJVNob3duVXNlcnMgPSAlQWxsR3JvdXBzTWVtYmVyczsKICAgIH0KCiAgICAjIHNob3cgYWxsIHVzZXJzIHdobyBhcmUgcncgaW4gdGhlIHF1ZXVlIGdyb3VwCiAgICBlbHNpZiAoICRQYXJhbXtRdWV1ZUlEfSApIHsKICAgICAgICBteSAkR0lEID0gJFNlbGYtPntRdWV1ZU9iamVjdH0tPkdldFF1ZXVlR3JvdXBJRCggUXVldWVJRCA9PiAkUGFyYW17UXVldWVJRH0gKTsKICAgICAgICBteSAlTWVtYmVyTGlzdCA9ICRTZWxmLT57R3JvdXBPYmplY3R9LT5Hcm91cE1lbWJlckxpc3QoCiAgICAgICAgICAgIEdyb3VwSUQgPT4gJEdJRCwKICAgICAgICAgICAgVHlwZSAgICA9PiAncncnLAogICAgICAgICAgICBSZXN1bHQgID0+ICdIQVNIJywKICAgICAgICAgICAgQ2FjaGVkICA9PiAxLAogICAgICAgICk7CiAgICAgICAgZm9yICggc29ydCBrZXlzICVNZW1iZXJMaXN0ICkgewogICAgICAgICAgICBpZiAoICRBbGxHcm91cHNNZW1iZXJzeyRffSApIHsKICAgICAgICAgICAgICAgICRTaG93blVzZXJzeyRffSA9ICRBbGxHcm91cHNNZW1iZXJzeyRffTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KICAgIHJldHVybiBcJVNob3duVXNlcnM7Cn0KCj1pdGVtIE5leHRTdGF0ZXNHZXQoKQpHZXQgYSBIYXNoIHJlZmVyZW5jZSB0byBhbGwgcG9zc2libGUgc3RhdGVzIGJhc2VkIG9uIGEgVGlja2V0IG9yIFF1ZXVlCgogICAgbXkgJFJlc3VsdCA9ICRpUGhvbmVPYmplY3QtPk5leHRTdGF0ZXNHZXQoCiAgICAgICAgUXVldWVJRCAgICAgICAgID0+IDMsICAjfHwgVGlja2VUSUQgb3B0aW9uYWwKICAgICAgICBUaWNrZXRJRCAgICAgICAgPT4gMjIzICN8fCBRdWV1ZUlEIG9wdGlvbmFsCiAgICAgICAgVXNlcklEICAgICAgICAgID0+IDEsCiAgICApOwoKICAgICMgYSByZXN1bHQgY291bGQgYmUKCiAgICAkUmVzdWx0ID0gWwogICAgICAgIDEgID0+ICJuZXciLAogICAgICAgIDIgID0+ICJjbG9zZWQgc3VjY2Vzc2Z1bCIsCiAgICAgICAgMyAgPT4gImNsb3NlZCB1bnN1Y2Nlc3NmdWwiLAogICAgICAgIDQgID0+ICJvcGVuIiwKICAgICAgICA1ICA9PiAicmVtb3ZlZCIKICAgICAgICA2ICA9PiAicGVuZGluZyByZW1pbmRlciIsCiAgICAgICAgNyAgPT4gInBlbmRpbmcgYXV0byBjbG9zZSsiLAogICAgICAgIDggID0+ICJwZW5kaW5nIGF1dG8gY2xvc2UtIiwKICAgICAgICA5ICA9PiAibWVyZ2VkIiwKICAgICAgICAxMCA9PiAiY2xvc2VkIHdpdGggd29ya2Fyb3VuZCIsCiAgICBdLAo9Y3V0CgpzdWIgTmV4dFN0YXRlc0dldCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICVOZXh0U3RhdGVzID0gKCk7CiAgICBpZiAoICRQYXJhbXtRdWV1ZUlEfSB8fCAkUGFyYW17VGlja2V0SUR9ICkgewogICAgICAgICVOZXh0U3RhdGVzID0gJFNlbGYtPntUaWNrZXRPYmplY3R9LT5TdGF0ZUxpc3QoCiAgICAgICAgICAgICVQYXJhbSwKICAgICAgICAgICAgQWN0aW9uID0+ICRQYXJhbXtBY3Rpb259LAogICAgICAgICAgICBVc2VySUQgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgKTsKICAgIH0KICAgIHJldHVybiBcJU5leHRTdGF0ZXM7Cn0KCj1pdGVtIFByaW9yaXRpZXNHZXQoKQpHZXQgYSBIYXNoIHJlZmVyZW5jZSB0byBhbGwgcG9zc2libGUgcHJpb3JpdGllcwoKICAgIG15ICRSZXN1bHQgPSAkaVBob25lT2JqZWN0LT5Qcmlvcml0aWVzR2V0KAogICAgICAgIFVzZXJJRCAgICAgICAgICA9PiAxLAogICAgKTsKCiAgICAjIGEgcmVzdWx0IGNvdWxkIGJlCgogICAgJFJlc3VsdCA9IFsKICAgICAgICAxID0+ICIxIHZlcnkgbG93IiwKICAgICAgICAyID0+ICIyIGxvdyIsCiAgICAgICAgMyA9PiAiMyBub3JtYWwiLAogICAgICAgIDQgPT4gIjQgaGlnaCIsCiAgICAgICAgNSA9PiAiNSB2ZXJ5IGhpZ2giLAogICAgXSwKPWN1dAoKc3ViIFByaW9yaXRpZXNHZXQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAlUHJpb3JpdGllcyA9ICgpOwoKICAgICMgZ2V0IHByaW9yaXR5CiAgICAlUHJpb3JpdGllcyA9ICRTZWxmLT57VGlja2V0T2JqZWN0fS0+UHJpb3JpdHlMaXN0KAogICAgICAgICVQYXJhbSwKICAgICAgICBBY3Rpb24gPT4gJFBhcmFte0FjdGlvbn0sCiAgICAgICAgVXNlcklEID0+ICRQYXJhbXtVc2VySUR9LAogICAgKTsKCiAgICByZXR1cm4gXCVQcmlvcml0aWVzOwp9Cgo9aXRlbSBDdXN0b21lclNlYXJjaCgpCkdldCBhIEhhc2ggcmVmZXJlbmNlIHRvIGFsbCBwb3NzaWJsZSBjdXN0b21lcnMgbWF0Y2hpbmcgdGhlIGdpdmVuIHNlYXJjaApwYXJhbWV0ZXIsIHVzZSAiKiIgZm9yIGFsbC4KCiAgICBteSAkUmVzdWx0ID0gJGlQaG9uZU9iamVjdC0+Q3VzdG9tZXJTZWFyY2goCiAgICAgICAgU2VhcmNoICAgICAgICAgID0+ICdzdycsCiAgICAgICAgVXNlcklEICAgICAgICAgID0+IDEsCiAgICApOwoKICAgICMgYSByZXN1bHQgY291bGQgYmUKCiAgICAkUmVzdWx0ID0gWwogICAgICAgIFJheSAgID0+ICciUmF5IFBhcmsiIDxycEBzdy5jb20+JywKICAgICAgICBEYXZpZCA9PiAnIkRhdmlkIFByb3dzZSIgPGRwQHN3LmNvbT4nLAogICAgXSwKPWN1dAoKc3ViIEN1c3RvbWVyU2VhcmNoIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBnZXQgQXV0b0NvbXBsZXRlIHNldHRpbmdzIGZvcm0gY29uZmlnCiAgICAkU2VsZi0+e0NvbmZpZ30gPSAkU2VsZi0+e0NvbmZpZ09iamVjdH0tPkdldCgnQXV0b0NvbXBsZXRlOjpBZ2VudCcpLT57RGVmYXVsdH07CgogICAgbXkgJUN1c3RvbWVyczsKCiAgICAjIHNlYXJjaCBvbmx5IGlmIHRoZSBzZWFyY2ggc3RyaW5nIGlzIGF0IGxlYXN0IGFzIGxvbmcgYXMgdGhlIE1pbmltdW0gUXVlcnkgTGVuZ2h0CiAgICBpZiAoIGxlbmd0aCggJFBhcmFte1NlYXJjaH0gKSA+PSAkU2VsZi0+e0NvbmZpZ30tPntNaW5RdWVyeUxlbmd0aH0gKSB7CiAgICAgICAgJUN1c3RvbWVycyA9ICRTZWxmLT57Q3VzdG9tZXJVc2VyT2JqZWN0fS0+Q3VzdG9tZXJTZWFyY2goCiAgICAgICAgICAgIFNlYXJjaCA9PiAkUGFyYW17U2VhcmNofSwKICAgICAgICApOwogICAgfQogICAgcmV0dXJuIFwlQ3VzdG9tZXJzOwp9Cgo9aXRlbSBTY3JlZW5BY3Rpb25zKCkKUGVyZm9ybXMgYSB0aWNrZXQgYWN0aW9uIChBY3Rpb25zIGluY2x1ZGUgUGhvbmUsIE5vdGUsIENsb3NlLCBDb21wb3NlIG9yIE1vdmUpCgpQaG9uZSAgIChOZXcgcGhvbmUgdGlja2V0KQpOb3RlICAgIChBZGQgYSBub3RlIHRvIGEgVGlja2V0KQpDbG9zZSAgIChDbG9zZSBhIHRja2V0KQpDb21wb3NlIChSZXBseSBvciByZXNwb25zZSBhIHRpY2tldCkKTW92ZSAgICAoQ2hhbmdlIHRpY2tldCBxdWV1ZSkKClRoZSBhcmd1bWVudHMgdGFrZW4gZGVwZW5kIG9uIHRoZSByZXN1bHRzIG9mIFNjcmVlbkNvbmZpZygpCgpUaGUgcmVzdWx0IGlzIHRoZSBUaWNrZXRJRCBmb3IgQWN0aW9uIFBob25lIG9yIEFydGljbGVJRCBmb3IgdGhlIG90aGVyIGFjdGlvbnMKCiAgICBteSBAUmVzdWx0ID0gJGlQaG9uZU9iamVjdC0+U2NyZWVuQWN0aW9ucygKICAgICAgICBBY3Rpb24gICAgICAgICAgICAgID0+ICJQaG9uZSIsCiAgICAgICAgU3ViamVjdCAgICAgICAgICAgICA9PiAiaVBob25lIFRpY2tldCIsCiAgICAgICAgQ3VzdG9tZXJJRCAgICAgICAgICA9PiAib3RycyIsCiAgICAgICAgQm9keSAgICAgICAgICAgICAgICA9PiAiTXkgZmlzcnQgaVBob25lIHRpY2tldCIsCiAgICAgICAgQ3VzdG9tZXJVc2VyTG9naW4gICA9PiAiQWF5bGEiLAogICAgICAgIFRpbWVVbml0cyAgICAgICAgICAgPT4gMTIzLAogICAgICAgIFF1ZXVlSUQgICAgICAgICAgICAgPT4gMywKICAgICAgICBPd25lcklEICAgICAgICAgICAgID0+IDIzLAogICAgICAgIFJlc3BvbnNpbGJlSUQgICAgICAgPT4gNDUsCiAgICAgICAgU3RhdGVJRCAgICAgICAgICAgICA9PiA0LAogICAgICAgIFBlbmRpbmdEYXRlICAgICAgICAgPT4iMjAxMC0wNy0wOSAyMzo1NDoxOCIsCiAgICAgICAgUHJpb3JpdHlJRCAgICAgICAgICA9PiAxLAogICAgICAgIER5YW5taWNGaWVsZF9OYW1lWCAgPT4gJ3NvbWUgdmFsdWUnLAogICAgICAgIFVzZXJJRCAgICAgICAgICAgICAgPT4gMSwKICAgICk7CgogICAgIyBhIHJlc3VsdCBjb3VsZCBiZQoKICAgIEBSZXN1bHQgPSAoIDIyNCApOwo9Y3V0CgpzdWIgU2NyZWVuQWN0aW9ucyB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICVVc2VyUHJlZmVyZW5jZXMgPSAkU2VsZi0+e1VzZXJPYmplY3R9LT5HZXRQcmVmZXJlbmNlcyggVXNlcklEID0+ICRQYXJhbXtVc2VySUR9ICk7CiAgICAkU2VsZi0+e1VzZXJUaW1lWm9uZX0gPSAkVXNlclByZWZlcmVuY2Vze1VzZXJUaW1lWm9uZX07CgogICAgaWYgKCAkU2VsZi0+e0NvbmZpZ09iamVjdH0tPkdldCgnVGltZVpvbmVVc2VyJykgJiYgJFNlbGYtPntVc2VyVGltZVpvbmV9ICkgewogICAgICAgICRTZWxmLT57VXNlclRpbWVPYmplY3R9ID0gS2VybmVsOjpTeXN0ZW06OlRpbWUtPm5ldyggJXskU2VsZn0gKTsKICAgIH0KICAgIGVsc2UgewogICAgICAgICRTZWxmLT57VXNlclRpbWVPYmplY3R9ID0gJFNlbGYtPntUaW1lT2JqZWN0fTsKICAgICAgICAkU2VsZi0+e1VzZXJUaW1lWm9uZX0gICA9ICcnOwogICAgfQoKICAgICRQYXJhbXtVc2VyVGltZVpvbmV9ID0gJFNlbGYtPntVc2VyVGltZVpvbmV9OwoKICAgIGlmICggJFBhcmFte0FjdGlvbn0gKSB7CiAgICAgICAgbXkgJFJlc3VsdDsKICAgICAgICBpZiAoICRQYXJhbXtBY3Rpb259IGVxICdQaG9uZScgKSB7CiAgICAgICAgICAgICRSZXN1bHQgPSAkU2VsZi0+X1RpY2tldFBob25lTmV3KCVQYXJhbSk7CiAgICAgICAgICAgIGlmICgkUmVzdWx0KSB7CiAgICAgICAgICAgICAgICByZXR1cm4gJFJlc3VsdDsKICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm4gLTE7CiAgICAgICAgfQogICAgICAgIGlmICggJFBhcmFte0FjdGlvbn0gZXEgJ05vdGUnIHx8ICRQYXJhbXtBY3Rpb259IGVxICdDbG9zZScgKSB7CiAgICAgICAgICAgICRSZXN1bHQgPSAkU2VsZi0+X1RpY2tldENvbW1vbkFjdGlvbnMoJVBhcmFtKTsKICAgICAgICAgICAgaWYgKCRSZXN1bHQpIHsKICAgICAgICAgICAgICAgIHJldHVybiAkUmVzdWx0OwogICAgICAgICAgICB9CiAgICAgICAgICAgIHJldHVybiAtMTsKICAgICAgICB9CiAgICAgICAgaWYgKCAkUGFyYW17QWN0aW9ufSBlcSAnQ29tcG9zZScgKSB7CiAgICAgICAgICAgICRSZXN1bHQgPSAkU2VsZi0+X1RpY2tldENvbXBvc2UoJVBhcmFtKTsKICAgICAgICAgICAgaWYgKCRSZXN1bHQpIHsKICAgICAgICAgICAgICAgIHJldHVybiAkUmVzdWx0OwogICAgICAgICAgICB9CiAgICAgICAgICAgIHJldHVybiAtMTsKICAgICAgICB9CiAgICAgICAgaWYgKCAkUGFyYW17QWN0aW9ufSBlcSAnTW92ZScgKSB7CiAgICAgICAgICAgICRSZXN1bHQgPSAkU2VsZi0+X1RpY2tldE1vdmUoJVBhcmFtKTsKICAgICAgICAgICAgaWYgKCRSZXN1bHQpIHsKICAgICAgICAgICAgICAgIHJldHVybiAkUmVzdWx0OwogICAgICAgICAgICB9CiAgICAgICAgICAgIHJldHVybiAtMTsKICAgICAgICB9CiAgICAgICAgJFNlbGYtPntMb2dPYmplY3R9LT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICdBY3Rpb24gdW5kZWZpbmVkISBleHBlY3RlZCBQaG9uZSwgTm90ZSwgQ2xvc2UsIENvbXBvc2Ugb3IgTW92ZSwgJwogICAgICAgICAgICAgICAgLiAnYnV0ICcgLiAkUGFyYW17QWN0aW9ufSAuICcgZm91bmQnLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuIC0xOwogICAgfQogICAgZWxzZSB7CiAgICAgICAgJFNlbGYtPntMb2dPYmplY3R9LT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICdObyBBY3Rpb24gZ2l2ZW4hIFBsZWFzZSBjb250YWN0IHRoZSBhZG1pbi4nLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuIC0xOwogICAgfQp9Cgo9aXRlbSBWZXJzaW9uR2V0KCkKR2V0IGEgSGFzaCByZWZlcmVuY2Ugd2l0aCBpbmZvcm1hdGlvbiBhYm91dCB0aGUgb3RycyBpUGhvbmUgUGFja2FnZSBleHRlbnNpb24KCiAgICBteSAkUmVzdXQgPSAkaVBob25lT2JqZWN0LT5WZXJzaW9uR2V0KAogICAgICAgIFVzZXJJRCA9PiAxOwogICAgKTsKCiAgICBhIHJlc3VsdCBjb3VsZCBiZQoKICAgICRSZXN1bHQgPSBbCiAgICAgICAgTmFtZSAgICA9PiAiaVBob25lSGFuZGxlIgogICAgICAgIFZlcnNpb24gPT4gIjAuOS4yIiwKICAgICAgICBWZW5kb3IgID0+ICJPVFJTIEFHIiwKICAgICAgICBVUkwgICAgID0+ICJMPGh0dHA6Ly9vdHJzLm9yZy8+IiwKICAgIF07Cgo9Y3V0CgpzdWIgVmVyc2lvbkdldCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIGlmICggISRQYXJhbXtVc2VySUR9ICkgewogICAgICAgICRTZWxmLT57TG9nT2JqZWN0fS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAnTm8gVXNlcklEIGdpdmVuISBQbGVhc2UgY29udGFjdCB0aGUgYWRtaW4uJywKICAgICAgICApOwogICAgICAgIHJldHVybiAtMTsKICAgIH0KCiAgICAjIGdldCBob21lIHBhdGgKICAgIG15ICRIb21lID0gJFNlbGYtPntDb25maWdPYmplY3R9LT5HZXQoJ0hvbWUnKTsKCiAgICAjIGxvYWQgUkVMRUFTRSBmaWxlCiAgICBpZiAoIC1lICEiJEhvbWUvdmFyL1JFTEVBU0UuaVBob25lSGFuZGxlIiApIHsKICAgICAgICAkU2VsZi0+e0xvZ09iamVjdH0tPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gIkVSUk9SOiAkSG9tZS92YXIvUkVMRUFTRS5pUGhvbmVIYW5kbGUgZG9lcyBub3QgZXhpc3QhIFRoaXMgZmlsZSBpcyIKICAgICAgICAgICAgICAgIC4gIiBuZWVkZWQgYnkgaVBob25lSGFuZGxlLCB0aGUgc3lzdGVtIHdpbGwgbm90IHdvcmsgd2l0aG91dCB0aGlzIGZpbGUuXG4iLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuIC0xOwogICAgfQogICAgbXkgJFBhY2thZ2VOYW1lOwogICAgbXkgJFBhY2thZ2VWZXJzaW9uOwoKICAgICMgcmVhZCBSRUxFQVNFIGZpbGUgYW5kIHN0b3JlIGl0IGFzIGFuIGFycmF5IHJlZmVyZW5jZQogICAgbXkgJFByb2R1Y3QgPSAkU2VsZi0+e01haW5PYmplY3R9LT5GaWxlUmVhZCgKICAgICAgICBMb2NhdGlvbiA9PiAiJEhvbWUvdmFyL1JFTEVBU0UuaVBob25lSGFuZGxlIiwKICAgICAgICBSZXN1bHQgICA9PiAiQVJSQVkiLAogICAgKTsKCiAgICAjIHNlbmQgYW5kIGVycm9yIGlmIFJFTEVBU0UgZmlsZSB3YXMgbm90IHJlYWQKICAgIGlmICggISRQcm9kdWN0ICkgewogICAgICAgICRTZWxmLT57TG9nT2JqZWN0fS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAiRVJST1I6IENhbid0IHJlYWQgJEhvbWUvdmFyL1JFTEVBU0UuaVBob25lSGFuZGxlISBUaGlzIGZpbGUgaXMiCiAgICAgICAgICAgICAgICAuICIgbmVlZGVkIGJ5IGlQaG9uZUhhbmRsZSwgdGhlIHN5c3RlbSB3aWxsIG5vdCB3b3JrIHdpdGhvdXQgdGhpcyBmaWxlLlxuIiwKICAgICAgICApOwogICAgICAgIHJldHVybiAtMTsKICAgIH0KCiAgICAjIGdldCBQYWNrYWdlTmFtZSBhbmQgUGFja2FnZVZlcnNpb24gZnJvbSBSRUxFQVNFIGZpbGUKICAgIGZvciBteSAkTGluZSAoIEB7JFByb2R1Y3R9ICkgewoKICAgICAgICAjIGZpbHRlcmluZyBvZiBjb21tZW50IGxpbmVzCiAgICAgICAgaWYgKCAkTGluZSAhfiBte1xBIFwjfW1zeCApIHsKICAgICAgICAgICAgaWYgKCAkTGluZSA9fiBte1xBIFBST0RVQ1QgXHN7MCwyfSA9IFxzezAsMn0gKC4qKSBcc3swLDJ9IFx6fW1zeGkgKSB7CiAgICAgICAgICAgICAgICAkUGFja2FnZU5hbWUgPSAkMTsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNpZiAoICRMaW5lID1+IG17XEEgVkVSU0lPTiBcc3swLDJ9ID0gXHN7MCwyfSAoLiopIFxzezAsMn0gXHp9bXN4aSApIHsKICAgICAgICAgICAgICAgICRQYWNrYWdlVmVyc2lvbiA9ICQxOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgIHJldHVybiB7CiAgICAgICAgTmFtZSAgICAgID0+ICRQYWNrYWdlTmFtZSwKICAgICAgICBWZXJzaW9uICAgPT4gJFBhY2thZ2VWZXJzaW9uLAogICAgICAgIFZlbmRvciAgICA9PiAnT1RSUyBBRycsCiAgICAgICAgVVJMICAgICAgID0+ICdodHRwOi8vb3Rycy5vcmcvJywKICAgICAgICBGcmFtZXdvcmsgPT4gJFNlbGYtPntDb25maWdPYmplY3R9LT5HZXQoJ1ZlcnNpb24nKSwKICAgIH07Cn0KCj1pdGVtIEN1c3RvbWVySURHZXQoKQpHZXQgdGhlIEN1c3RvbWVyIElEIGZyb20gYSBnaXZlbiBjdXN0b21lciBsb2dpbgoKICAgIG15ICRSZXN1dCA9ICRpUGhvbmVPYmplY3QtPkN1c3RvbWVySURHZXQoCiAgICAgICAgQ3VzdG9tZXJVc2VySUQgPT4gIkRhdmlkIjsKICAgICk7CgogICAgYSByZXN1bHQgY291bGQgYmUKCiAgICAkUmVzdWx0ID0gInN3IgoKPWN1dAoKc3ViIEN1c3RvbWVySURHZXQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIGZvciBwYXJhbWV0ZXJzCiAgICBpZiAoICEkUGFyYW17Q3VzdG9tZXJVc2VySUR9ICkgewogICAgICAgICRTZWxmLT57TG9nT2JqZWN0fS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAnTmVlZCBDdXN0b21lclVzZXJJRCEnLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuIC0xOwogICAgfQogICAgbXkgJEN1c3RvbWVySUQ7CgogICAgIyBnZXQgY3VzdG9tZXIgZGF0YQogICAgbXkgJUN1c3RvbWVyVXNlckRhdGEgPSAkU2VsZi0+e0N1c3RvbWVyVXNlck9iamVjdH0tPkN1c3RvbWVyVXNlckRhdGFHZXQoCiAgICAgICAgVXNlciA9PiAkUGFyYW17Q3VzdG9tZXJVc2VySUR9LAogICAgKTsKICAgIGlmICggJUN1c3RvbWVyVXNlckRhdGEgJiYgJEN1c3RvbWVyVXNlckRhdGF7VXNlckN1c3RvbWVySUR9ICkgewogICAgICAgICRDdXN0b21lcklEID0gJEN1c3RvbWVyVXNlckRhdGF7VXNlckN1c3RvbWVySUR9OwogICAgICAgIHJldHVybiAkQ3VzdG9tZXJJRDsKICAgIH0KICAgIGVsc2UgewogICAgICAgIHJldHVybiAnJzsKICAgIH0KfQoKPWl0ZW0gQXJ0aWNsZUluZGV4KCkKCnJldHVybnMgYW4gYXJyYXkgd2l0aCBhcnRpY2xlIGlkJ3Mgb3IgJycgaWYgdGlja2V0IGhhcyBubyBhcnRpY2xlcwoKICAgIG15IEBBcnRpY2xlSURzID0gJGlQaG9uZU9iamVjdC0+QXJ0aWNsZUluZGV4KAogICAgICAgIFRpY2tldElEID0+IDEyMywKICAgICk7CgogICAgbXkgQEFydGljbGVJRHMgPSAkaVBob25lT2JqZWN0LT5BcnRpY2xlSW5kZXgoCiAgICAgICAgU2VuZGVyVHlwZSA9PiAnY3VzdG9tZXInLAogICAgICAgIFRpY2tldElEICAgPT4gMTIzLAogICAgKTsKCj1jdXQKCnN1YiBBcnRpY2xlSW5kZXggewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSBASW5kZXggPSAkU2VsZi0+e1RpY2tldE9iamVjdH0tPkFydGljbGVJbmRleCglUGFyYW0pOwoKICAgIHJldHVybiBASW5kZXg7Cn0KCj1pdGVtIEluaXRDb25maWdHZXQoKQoKcmV0dXJucyBhIGhhc2ggcmVmZXJlbmNlIHdpdGggaW5pdGlhbCBjb25maWd1cmF0aW9uIHJlcXVpcmVkIGJ5IHRoZSBpUGhvbmUgYXBwCgogICAgbXkgJFJlc3VsdCA9ICRpUGhvbmVPYmplY3QtPkluaXRDb25maWdHZXQoCiAgICAgICAgVXNlcklEID0+IDEsCiAgICApOwoKICAgIGEgcmVzdWx0IGNvdWxkIGJlCgogICAgJFJlc3VsdCA9IFsKICAgICAgICBUaWNrZXRSZXNwb25zaWJsZSAgICAgICAgICA9PiAxLAogICAgICAgIFRpY2tldFdhdGNoZXIgICAgICAgICAgICAgID0+IDEsCiAgICAgICAgQ3VycmVudFRpbWVzdGFtcCAgICAgICAgICAgPT4gIjIwMTAtMTAtMjYgMTE6NTM6MzUiLAogICAgICAgIFZlcnNpb25HZXQgICAgICAgICAgICAgICAgID0+IHsKICAgICAgICAgICAgVVJMICAgICAgID0+ICJodHRwOi8vb3Rycy5vcmcvIiwKICAgICAgICAgICAgRnJhbWV3b3JrID0+ICIzLjMueCBnaXQiLAogICAgICAgICAgICBWZXJzaW9uICAgPT4gIjAuOS42IiwKICAgICAgICAgICAgVmVuZG9yICAgID0+ICJPVFJTIEFHIiwKICAgICAgICAgICAgTmFtZSAgICAgID0+ICJpUGhvbmVIYW5kbGUiCiAgICAgICAgfSwKICAgICAgICBDdXN0b21lclNlYXJjaEF1dG9Db21wbGV0ZSA9PiB7CiAgICAgICAgICAgIFF1ZXJ5RGVsYXkgICAgICAgICAgPT4gMC4xLAogICAgICAgICAgICBBY3RpdmUgICAgICAgICAgICAgID0+IDEsCiAgICAgICAgICAgIE1heFJlc3VsdHNEaXNwbGF5ZWQgPT4gMjAsCiAgICAgICAgICAgIFR5cGVBaGVhZCAgICAgICAgICAgPT4gZmFsc2UsCiAgICAgICAgICAgIE1pblF1ZXJ5TGVuZ3RoICAgICAgPT4gMywKICAgICAgICB9LAogICAgICAgIERlZmF1bHRDaGFyc2V0ICAgICAgICAgICAgID0+ICJ1dGYtOCIsCiAgICBdOwoKPWN1dAoKc3ViIEluaXRDb25maWdHZXQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBpZiAoICEkUGFyYW17VXNlcklEfSApIHsKICAgICAgICAkU2VsZi0+e0xvZ09iamVjdH0tPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gJ05vIFVzZXJJRCBnaXZlbiEgUGxlYXNlIGNvbnRhY3QgdGhlIGFkbWluLicsCiAgICAgICAgKTsKICAgICAgICByZXR1cm4gLTE7CiAgICB9CgogICAgbXkgJUluaXRDb25maWc7CgogICAgJEluaXRDb25maWd7VGlja2V0V2F0Y2hlcn0gICAgID0gJFNlbGYtPntDb25maWdPYmplY3R9LT5HZXQoJ1RpY2tldDo6V2F0Y2hlcicpOwogICAgJEluaXRDb25maWd7VGlja2V0UmVzcG9uc2libGV9ID0gJFNlbGYtPntDb25maWdPYmplY3R9LT5HZXQoJ1RpY2tldDo6UmVzcG9uc2libGUnKTsKICAgICRJbml0Q29uZmlne0RlZmF1bHRDaGFyc2V0fSAgICA9ICRTZWxmLT57Q29uZmlnT2JqZWN0fS0+R2V0KCdEZWZhdWx0Q2hhcnNldCcpOwogICAgJEluaXRDb25maWd7Q3VzdG9tZXJTZWFyY2hBdXRvQ29tcGxldGV9CiAgICAgICAgPSAkU2VsZi0+e0NvbmZpZ09iamVjdH0tPkdldCgnQXV0b0NvbXBsZXRlOjpBZ2VudCcpLT57RGVmYXVsdH07CiAgICAkSW5pdENvbmZpZ3tDdXJyZW50VGltZXN0YW1wfSA9ICRTZWxmLT57VGltZU9iamVjdH0tPkN1cnJlbnRUaW1lc3RhbXAoKTsKICAgICRJbml0Q29uZmlne1ZlcnNpb25HZXR9ICAgICAgID0gJFNlbGYtPlZlcnNpb25HZXQoJVBhcmFtKTsKCiAgICByZXR1cm4gXCVJbml0Q29uZmlnOwp9CgojIGludGVybmFsIHN1YnJvdXRpbmVzCgpzdWIgX0dldFR5cGVzIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgJVR5cGUgPSAoKTsKCiAgICAjIGdldCB0eXBlCiAgICAlVHlwZSA9ICRTZWxmLT57VGlja2V0T2JqZWN0fS0+VGlja2V0VHlwZUxpc3QoCiAgICAgICAgJVBhcmFtLAogICAgICAgIEFjdGlvbiA9PiAkUGFyYW17QWN0aW9ufSwKICAgICAgICBVc2VySUQgPT4gJFBhcmFte1VzZXJJRH0sCiAgICApOwogICAgcmV0dXJuIFwlVHlwZTsKfQoKc3ViIF9HZXRUb3MgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIG93biBzZWxlY3Rpb24KICAgIG15ICVOZXdUb3MgPSAoKTsKICAgIGlmICggJFNlbGYtPntDb25maWdPYmplY3R9LT57J1RpY2tldDo6RnJvbnRlbmQ6Ok5ld1F1ZXVlT3duU2VsZWN0aW9uJ30gKSB7CiAgICAgICAgJU5ld1RvcyA9ICV7ICRTZWxmLT57Q29uZmlnT2JqZWN0fS0+eydUaWNrZXQ6OkZyb250ZW5kOjpOZXdRdWV1ZU93blNlbGVjdGlvbid9IH07CiAgICB9CiAgICBlbHNlIHsKCiAgICAgICAgIyBTZWxlY3Rpb25UeXBlIFF1ZXVlIG9yIFN5c3RlbUFkZHJlc3M/CiAgICAgICAgbXkgJVRvcyA9ICgpOwogICAgICAgIGlmICggJFNlbGYtPntDb25maWdPYmplY3R9LT5HZXQoJ1RpY2tldDo6RnJvbnRlbmQ6Ok5ld1F1ZXVlU2VsZWN0aW9uVHlwZScpIGVxICdRdWV1ZScgKSB7CiAgICAgICAgICAgICVUb3MgPSAkU2VsZi0+e1RpY2tldE9iamVjdH0tPk1vdmVMaXN0KAogICAgICAgICAgICAgICAgVHlwZSAgICA9PiAnY3JlYXRlJywKICAgICAgICAgICAgICAgIEFjdGlvbiAgPT4gJFBhcmFte0FjdGlvbn0sCiAgICAgICAgICAgICAgICBRdWV1ZUlEID0+ICRQYXJhbXtRdWV1ZUlEfSwKICAgICAgICAgICAgICAgIFVzZXJJRCAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgICAgIGVsc2UgewogICAgICAgICAgICAlVG9zID0gJFNlbGYtPntEQk9iamVjdH0tPkdldFRhYmxlRGF0YSgKICAgICAgICAgICAgICAgIFRhYmxlID0+ICdzeXN0ZW1fYWRkcmVzcycsCiAgICAgICAgICAgICAgICBXaGF0ICA9PiAncXVldWVfaWQsIGlkJywKICAgICAgICAgICAgICAgIFZhbGlkID0+IDEsCiAgICAgICAgICAgICAgICBDbGFtcCA9PiAxLAogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgIyBnZXQgY3JlYXRlIHBlcm1pc3Npb24gcXVldWVzCiAgICAgICAgbXkgJVVzZXJHcm91cHMgPSAkU2VsZi0+e0dyb3VwT2JqZWN0fS0+R3JvdXBNZW1iZXJMaXN0KAogICAgICAgICAgICBVc2VySUQgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgIFR5cGUgICA9PiAnY3JlYXRlJywKICAgICAgICAgICAgUmVzdWx0ID0+ICdIQVNIJywKICAgICAgICAgICAgQ2FjaGVkID0+IDEsCiAgICAgICAgKTsKCiAgICAgICAgIyBidWlsZCBzZWxlY3Rpb24gc3RyaW5nCiAgICAgICAgZm9yIG15ICRRdWV1ZUlEICggc29ydCBrZXlzICVUb3MgKSB7CiAgICAgICAgICAgIG15ICVRdWV1ZURhdGEgPSAkU2VsZi0+e1F1ZXVlT2JqZWN0fS0+UXVldWVHZXQoIElEID0+ICRRdWV1ZUlEICk7CgogICAgICAgICAgICAjIHBlcm1pc3Npb24gY2hlY2ssIGNhbiB3ZSBjcmVhdGUgbmV3IHRpY2tldHMgaW4gcXVldWUKICAgICAgICAgICAgbmV4dCBpZiAhJFVzZXJHcm91cHN7ICRRdWV1ZURhdGF7R3JvdXBJRH0gfTsKCiAgICAgICAgICAgIG15ICRTdHJpbmcgPSAkU2VsZi0+e0NvbmZpZ09iamVjdH0tPkdldCgnVGlja2V0OjpGcm9udGVuZDo6TmV3UXVldWVTZWxlY3Rpb25TdHJpbmcnKQogICAgICAgICAgICAgICAgfHwgJzxSZWFsbmFtZT4gPDxFbWFpbD4+IC0gUXVldWU6IDxRdWV1ZT4nOwogICAgICAgICAgICAkU3RyaW5nID1+IHMvPFF1ZXVlPi8kUXVldWVEYXRhe05hbWV9L2c7CiAgICAgICAgICAgICRTdHJpbmcgPX4gcy88UXVldWVDb21tZW50Pi8kUXVldWVEYXRhe0NvbW1lbnR9L2c7CiAgICAgICAgICAgIGlmICggJFNlbGYtPntDb25maWdPYmplY3R9LT5HZXQoJ1RpY2tldDo6RnJvbnRlbmQ6Ok5ld1F1ZXVlU2VsZWN0aW9uVHlwZScpIG5lICdRdWV1ZScgKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBteSAlU3lzdGVtQWRkcmVzc0RhdGEgPSAkU2VsZi0+e1N5c3RlbUFkZHJlc3N9LT5TeXN0ZW1BZGRyZXNzR2V0KAogICAgICAgICAgICAgICAgICAgIElEID0+ICRUb3N7JFF1ZXVlSUR9LAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICRTdHJpbmcgPX4gcy88UmVhbG5hbWU+LyRTeXN0ZW1BZGRyZXNzRGF0YXtSZWFsbmFtZX0vZzsKICAgICAgICAgICAgICAgICRTdHJpbmcgPX4gcy88RW1haWw+LyRTeXN0ZW1BZGRyZXNzRGF0YXtOYW1lfS9nOwogICAgICAgICAgICB9CiAgICAgICAgICAgICROZXdUb3N7JFF1ZXVlSUR9ID0gJFN0cmluZzsKICAgICAgICB9CiAgICB9CgogICAgIyBhZGQgZW1wdHkgc2VsZWN0aW9uCiAgICAkTmV3VG9zeycnfSA9ICctJzsKICAgIHJldHVybiBcJU5ld1RvczsKfQoKc3ViIF9HZXROb3RlVHlwZXMgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAlRGVmYXVsdE5vdGVUeXBlcyA9ICV7ICRTZWxmLT57Q29uZmlnfS0+e0FydGljbGVUeXBlc30gfTsKCiAgICBteSAlTm90ZVR5cGVzID0gJFNlbGYtPntUaWNrZXRPYmplY3R9LT5BcnRpY2xlVHlwZUxpc3QoIFJlc3VsdCA9PiAnSEFTSCcgKTsKICAgIGZvciAoIHNvcnQga2V5cyAlTm90ZVR5cGVzICkgewogICAgICAgIGlmICggISREZWZhdWx0Tm90ZVR5cGVzeyAkTm90ZVR5cGVzeyRffSB9ICkgewogICAgICAgICAgICBkZWxldGUgJE5vdGVUeXBlc3skX307CiAgICAgICAgfQogICAgfQogICAgcmV0dXJuIFwlTm90ZVR5cGVzOwp9CgpzdWIgX0dldFNjcmVlbkVsZW1lbnRzIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgQFNjcmVlbkVsZW1lbnRzOwoKICAgIGlmICggJFNlbGYtPntDb25maWd9LT57VGl0bGV9ICkgewogICAgICAgIG15ICVUaWNrZXREYXRhID0gJFNlbGYtPntUaWNrZXRPYmplY3R9LT5UaWNrZXRHZXQoCiAgICAgICAgICAgIFRpY2tldElEID0+ICRQYXJhbXtUaWNrZXRJRH0sCiAgICAgICAgICAgIFVzZXJJRCAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICk7CiAgICAgICAgbXkgJFRpdGxlRGVmYXVsdDsKICAgICAgICBpZiAoICRUaWNrZXREYXRhe1RpdGxlfSApIHsKICAgICAgICAgICAgJFRpdGxlRGVmYXVsdCA9ICRUaWNrZXREYXRhe1RpdGxlfSB8fCAnJzsKICAgICAgICB9CgogICAgICAgIG15ICRUaXRsZUVsZW1lbnRzID0gewogICAgICAgICAgICBOYW1lICAgICAgPT4gJ1RpdGxlJywKICAgICAgICAgICAgVGl0bGUgICAgID0+ICRTZWxmLT57TGFuZ3VhZ2VPYmplY3R9LT5HZXQoJ1RpdGxlJyksCiAgICAgICAgICAgIERhdGF0eXBlICA9PiAnVGV4dCcsCiAgICAgICAgICAgIFZpZXdUeXBlICA9PiAnSW5wdXQnLAogICAgICAgICAgICBNaW4gICAgICAgPT4gMSwKICAgICAgICAgICAgTWF4ICAgICAgID0+IDIwMCwKICAgICAgICAgICAgTWFuZGF0b3J5ID0+IDEsCiAgICAgICAgICAgIERlZmF1bHQgICA9PiAkVGl0bGVEZWZhdWx0IHx8ICcnLAogICAgICAgIH07CiAgICAgICAgcHVzaCBAU2NyZWVuRWxlbWVudHMsICRUaXRsZUVsZW1lbnRzOwogICAgfQoKICAgICMgdHlwZQogICAgaWYgKCAkU2VsZi0+e0NvbmZpZ09iamVjdH0tPkdldCgnVGlja2V0OjpUeXBlJykgJiYgJFNlbGYtPntDb25maWd9LT57VGlja2V0VHlwZX0gKSB7CiAgICAgICAgbXkgJFR5cGVFbGVtZW50cyA9IHsKICAgICAgICAgICAgTmFtZSAgICAgPT4gJ1R5cGVJRCcsCiAgICAgICAgICAgIFRpdGxlICAgID0+ICRTZWxmLT57TGFuZ3VhZ2VPYmplY3R9LT5HZXQoJ1R5cGUnKSwKICAgICAgICAgICAgRGF0YXR5cGUgPT4gJ1RleHQnLAogICAgICAgICAgICBWaWV3dHlwZSA9PiAnUGlja2VyJywKICAgICAgICAgICAgT3B0aW9ucyAgPT4gewogICAgICAgICAgICAgICAgJXsKICAgICAgICAgICAgICAgICAgICAkU2VsZi0+X0dldFR5cGVzKAogICAgICAgICAgICAgICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgICAgICAgICAgICAgICAgIFVzZXJJRCA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgICAgICAgICAgICAgKQogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgTWFuZGF0b3J5ID0+IDEsCiAgICAgICAgICAgIERlZmF1bHQgICA9PiAnJywKICAgICAgICB9OwogICAgICAgIHB1c2ggQFNjcmVlbkVsZW1lbnRzLCAkVHlwZUVsZW1lbnRzOwogICAgfQoKICAgICMgZnJvbSwgdG8KICAgIGlmICggJFBhcmFte1NjcmVlbn0gZXEgJ1Bob25lJyApIHsKICAgICAgICBteSAkQ3VzdG9tZXJFbGVtZW50cyA9IHsKICAgICAgICAgICAgTmFtZSAgICAgICAgICAgPT4gJ0N1c3RvbWVyVXNlckxvZ2luJywKICAgICAgICAgICAgVGl0bGUgICAgICAgICAgPT4gJFNlbGYtPntMYW5ndWFnZU9iamVjdH0tPkdldCgnRnJvbSBjdXN0b21lcicpLAogICAgICAgICAgICBEYXRhdHlwZSAgICAgICA9PiAnVGV4dCcsCiAgICAgICAgICAgIFZpZXd0eXBlICAgICAgID0+ICdBdXRvQ29tcGxldGlvbicsCiAgICAgICAgICAgIER5bmFtaWNPcHRpb25zID0+IHsKICAgICAgICAgICAgICAgIE9iamVjdCAgICAgPT4gJ0N1c3RvbU9iamVjdCcsCiAgICAgICAgICAgICAgICBNZXRob2QgICAgID0+ICdDdXN0b21lclNlYXJjaCcsCiAgICAgICAgICAgICAgICBQYXJhbWV0ZXJzID0+IFsKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFNlYXJjaCA9PiAnQ3VzdG9tZXJVc2VyTG9naW4nLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICB9LAogICAgICAgICAgICBBdXRvRmlsbEVsZW1lbnRzID0+IFsKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBFbGVtZW50TmFtZSA9PiAnQ3VzdG9tZXJJRCcsCiAgICAgICAgICAgICAgICAgICAgT2JqZWN0ICAgICAgPT4gJ0N1c3RvbU9iamVjdCcsCiAgICAgICAgICAgICAgICAgICAgTWV0aG9kICAgICAgPT4gJ0N1c3RvbWVySURHZXQnLAogICAgICAgICAgICAgICAgICAgIFBhcmFtZXRlcnMgID0+IFsKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgQ3VzdG9tZXJVc2VySUQgPT4gJ0N1c3RvbWVyVXNlckxvZ2luJywKICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgXSwKICAgICAgICAgICAgTWFuZGF0b3J5ID0+IDEsCiAgICAgICAgICAgIERlZmF1bHQgICA9PiAnJywKICAgICAgICB9OwogICAgICAgIHB1c2ggQFNjcmVlbkVsZW1lbnRzLCAkQ3VzdG9tZXJFbGVtZW50czsKICAgIH0KCiAgICBpZiAoICRQYXJhbXtTY3JlZW59IGVxICdQaG9uZScgfHwgJFBhcmFte1NjcmVlbn0gZXEgJ01vdmUnICkgewogICAgICAgIG15ICRUaXRsZTsKICAgICAgICBpZiAoICRQYXJhbXtTY3JlZW59IGVxICdQaG9uZScgKSB7CiAgICAgICAgICAgICRUaXRsZSA9ICdUbyBxdWV1ZSc7CiAgICAgICAgfQogICAgICAgIGVsc2UgewogICAgICAgICAgICAkVGl0bGUgPSAnTmV3IFF1ZXVlJwogICAgICAgIH0KICAgICAgICBteSAkUXVldWVFbGVtZW50cyA9IHsKICAgICAgICAgICAgTmFtZSAgICAgPT4gJ1F1ZXVlSUQnLAogICAgICAgICAgICBUaXRsZSAgICA9PiAkU2VsZi0+e0xhbmd1YWdlT2JqZWN0fS0+R2V0KCRUaXRsZSksCiAgICAgICAgICAgIERhdGF0eXBlID0+ICdUZXh0JywKICAgICAgICAgICAgVmlld3R5cGUgPT4gJ1BpY2tlcicsCiAgICAgICAgICAgIE9wdGlvbnMgID0+IHsKICAgICAgICAgICAgICAgICV7CiAgICAgICAgICAgICAgICAgICAgJFNlbGYtPl9HZXRUb3MoCiAgICAgICAgICAgICAgICAgICAgICAgICVQYXJhbSwKICAgICAgICAgICAgICAgICAgICAgICAgVXNlcklEID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICB9LAogICAgICAgICAgICBNYW5kYXRvcnkgPT4gMSwKICAgICAgICAgICAgRGVmYXVsdCAgID0+ICcnLAogICAgICAgIH07CiAgICAgICAgcHVzaCBAU2NyZWVuRWxlbWVudHMsICRRdWV1ZUVsZW1lbnRzOwogICAgfQoKICAgICMgc2VydmljZQogICAgaWYgKCAkU2VsZi0+e0NvbmZpZ09iamVjdH0tPkdldCgnVGlja2V0OjpTZXJ2aWNlJykgJiYgJFNlbGYtPntDb25maWd9LT57U2VydmljZX0gKSB7CiAgICAgICAgbXkgJFNlcnZpY2VFbGVtZW50cyA9IHsKICAgICAgICAgICAgTmFtZSAgICAgICAgICAgPT4gJ1NlcnZpY2VJRCcsCiAgICAgICAgICAgIFRpdGxlICAgICAgICAgID0+ICRTZWxmLT57TGFuZ3VhZ2VPYmplY3R9LT5HZXQoJ1NlcnZpY2UnKSwKICAgICAgICAgICAgRGF0YXR5cGUgICAgICAgPT4gJ1RleHQnLAogICAgICAgICAgICBWaWV3dHlwZSAgICAgICA9PiAnUGlja2VyJywKICAgICAgICAgICAgRHluYW1pY09wdGlvbnMgPT4gewogICAgICAgICAgICAgICAgT2JqZWN0ICAgICA9PiAnQ3VzdG9tT2JqZWN0JywKICAgICAgICAgICAgICAgIE1ldGhvZCAgICAgPT4gJ1NlcnZpY2VzR2V0JywKICAgICAgICAgICAgICAgIFBhcmFtZXRlcnMgPT4gWwogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgQ3VzdG9tZXJVc2VySUQgPT4gJ0N1c3RvbWVyVXNlckxvZ2luJywKICAgICAgICAgICAgICAgICAgICAgICAgUXVldWVJRCAgICAgICAgPT4gJ1F1ZXVlSUQnLAogICAgICAgICAgICAgICAgICAgICAgICBUaWNrZXRJRCAgICAgICA9PiAnVGlja2V0SUQnLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICB9LAogICAgICAgICAgICBNYW5kYXRvcnkgPT4gMCwKICAgICAgICAgICAgRGVmYXVsdCAgID0+ICcnLAogICAgICAgIH07CiAgICAgICAgcHVzaCBAU2NyZWVuRWxlbWVudHMsICRTZXJ2aWNlRWxlbWVudHM7CiAgICB9CgogICAgIyBzbGEKICAgIGlmICggJFNlbGYtPntDb25maWdPYmplY3R9LT5HZXQoJ1RpY2tldDo6U2VydmljZScpICYmICRTZWxmLT57Q29uZmlnfS0+e1NlcnZpY2V9ICkgewogICAgICAgIG15ICRTTEFFbGVtZW50cyA9IHsKICAgICAgICAgICAgTmFtZSAgICAgICAgICAgPT4gJ1NMQUlEJywKICAgICAgICAgICAgVGl0bGUgICAgICAgICAgPT4gJFNlbGYtPntMYW5ndWFnZU9iamVjdH0tPkdldCgnU0xBJyksCiAgICAgICAgICAgIERhdGF0eXBlICAgICAgID0+ICdUZXh0JywKICAgICAgICAgICAgVmlld3R5cGUgICAgICAgPT4gJ1BpY2tlcicsCiAgICAgICAgICAgIER5bmFtaWNPcHRpb25zID0+IHsKICAgICAgICAgICAgICAgIE9iamVjdCAgICAgPT4gJ0N1c3RvbU9iamVjdCcsCiAgICAgICAgICAgICAgICBNZXRob2QgICAgID0+ICdTTEFzR2V0JywKICAgICAgICAgICAgICAgIFBhcmFtZXRlcnMgPT4gWwogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgQ3VzdG9tZXJVc2VySUQgPT4gJ0N1c3RvbWVyVXNlckxvZ2luJywKICAgICAgICAgICAgICAgICAgICAgICAgUXVldWVJRCAgICAgICAgPT4gJ1F1ZXVlSUQnLAogICAgICAgICAgICAgICAgICAgICAgICBTZXJ2aWNlSUQgICAgICA9PiAnU2VydmljZUlEJywKICAgICAgICAgICAgICAgICAgICAgICAgVGlja2V0SUQgICAgICAgPT4gJ1RpY2tldElEJywKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgTWFuZGF0b3J5ID0+IDAsCiAgICAgICAgICAgIERlZmF1bHQgICA9PiAnJywKICAgICAgICB9OwogICAgICAgIHB1c2ggQFNjcmVlbkVsZW1lbnRzLCAkU0xBRWxlbWVudHM7CiAgICB9CgogICAgIyBvd25lcgogICAgaWYgKCAkU2VsZi0+e0NvbmZpZ30tPntPd25lcn0gKSB7CiAgICAgICAgbXkgJFRpdGxlOwogICAgICAgIGlmICggJFBhcmFte1NjcmVlbn0gZXEgJ01vdmUnICkgewogICAgICAgICAgICAkVGl0bGUgPSAnTmV3IE93bmVyJzsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICRUaXRsZSA9ICdPd25lcic7CiAgICAgICAgfQoKICAgICAgICBteSAkT3duZXJFbGVtZW50cyA9IHsKICAgICAgICAgICAgTmFtZSAgICAgICAgICAgPT4gJ093bmVySUQnLAogICAgICAgICAgICBUaXRsZSAgICAgICAgICA9PiAkU2VsZi0+e0xhbmd1YWdlT2JqZWN0fS0+R2V0KCRUaXRsZSksCiAgICAgICAgICAgIERhdGF0eXBlICAgICAgID0+ICdUZXh0JywKICAgICAgICAgICAgVmlld3R5cGUgICAgICAgPT4gJ1BpY2tlcicsCiAgICAgICAgICAgIER5bmFtaWNPcHRpb25zID0+IHsKICAgICAgICAgICAgICAgIE9iamVjdCAgICAgPT4gJ0N1c3RvbU9iamVjdCcsCiAgICAgICAgICAgICAgICBNZXRob2QgICAgID0+ICdVc2Vyc0dldCcsCiAgICAgICAgICAgICAgICBQYXJhbWV0ZXJzID0+IFsKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFF1ZXVlSUQgID0+ICdRdWV1ZUlEJywKICAgICAgICAgICAgICAgICAgICAgICAgQWxsVXNlcnMgPT4gMSwKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgTWFuZGF0b3J5ID0+IDAsCiAgICAgICAgICAgIERlZmF1bHQgICA9PiAnJywKICAgICAgICB9OwogICAgICAgIHB1c2ggQFNjcmVlbkVsZW1lbnRzLCAkT3duZXJFbGVtZW50czsKICAgIH0KCiAgICAjIHJlc3BvbnNpYmxlCiAgICBpZiAoICRTZWxmLT57Q29uZmlnT2JqZWN0fS0+R2V0KCdUaWNrZXQ6OlJlc3BvbnNpYmxlJykgJiYgJFNlbGYtPntDb25maWd9LT57UmVzcG9uc2libGV9ICkgewogICAgICAgIG15ICRSZXNwb25zaWJsZUVsZW1lbnRzID0gewogICAgICAgICAgICBOYW1lICAgICAgICAgICA9PiAnUmVzcG9uc2libGVJRCcsCiAgICAgICAgICAgIFRpdGxlICAgICAgICAgID0+ICRTZWxmLT57TGFuZ3VhZ2VPYmplY3R9LT5HZXQoJ1Jlc3BvbnNpYmxlJyksCiAgICAgICAgICAgIERhdGF0eXBlICAgICAgID0+ICdUZXh0JywKICAgICAgICAgICAgVmlld3R5cGUgICAgICAgPT4gJ1BpY2tlcicsCiAgICAgICAgICAgIER5bmFtaWNPcHRpb25zID0+IHsKICAgICAgICAgICAgICAgIE9iamVjdCAgICAgPT4gJ0N1c3RvbU9iamVjdCcsCiAgICAgICAgICAgICAgICBNZXRob2QgICAgID0+ICdVc2Vyc0dldCcsCiAgICAgICAgICAgICAgICBQYXJhbWV0ZXJzID0+IFsKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFF1ZXVlSUQgID0+ICdRdWV1ZUlEJywKICAgICAgICAgICAgICAgICAgICAgICAgQWxsVXNlcnMgPT4gMSwKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgTWFuZGF0b3J5ID0+IDAsCiAgICAgICAgICAgIERlZmF1bHQgICA9PiAnJywKICAgICAgICB9OwogICAgICAgIHB1c2ggQFNjcmVlbkVsZW1lbnRzLCAkUmVzcG9uc2libGVFbGVtZW50czsKICAgIH0KCiAgICBpZiAoICRQYXJhbXtTY3JlZW59IGVxICdDb21wb3NlJyApIHsKICAgICAgICBteSAlQ29tcG9zZURlZmF1bHRzID0gJFNlbGYtPl9HZXRDb21wb3NlRGVmYXVsdHMoCiAgICAgICAgICAgICVQYXJhbSwKICAgICAgICAgICAgVXNlcklEICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgIFRpY2tldElEID0+ICRQYXJhbXtUaWNrZXRJRH0sCiAgICAgICAgKTsKCiAgICAgICAgaWYgKCAhJUNvbXBvc2VEZWZhdWx0cyApIHsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KCiAgICAgICAgbXkgJENvbXBvc2VGcm9tRWxlbWVudHMgPSB7CiAgICAgICAgICAgIE5hbWUgICAgICA9PiAnRnJvbScsCiAgICAgICAgICAgIFRpdGxlICAgICA9PiAkU2VsZi0+e0xhbmd1YWdlT2JqZWN0fS0+R2V0KCdGcm9tJyksCiAgICAgICAgICAgIERhdGF0eXBlICA9PiAnVGV4dCcsCiAgICAgICAgICAgIFZpZXd0eXBlICA9PiAnSW5wdXQnLAogICAgICAgICAgICBNaW4gICAgICAgPT4gMSwKICAgICAgICAgICAgTWF4ICAgICAgID0+IDUwLAogICAgICAgICAgICBNYW5kYXRvcnkgPT4gMSwKICAgICAgICAgICAgUmVhZG9ubHkgID0+IDEsCiAgICAgICAgICAgIERlZmF1bHQgICA9PiAkQ29tcG9zZURlZmF1bHRze0Zyb219IHx8ICcnLAogICAgICAgIH07CiAgICAgICAgcHVzaCBAU2NyZWVuRWxlbWVudHMsICRDb21wb3NlRnJvbUVsZW1lbnRzOwoKICAgICAgICBteSAkQ29tcG9zZVRvRWxlbWVudHMgPSB7CiAgICAgICAgICAgIE5hbWUgICAgICA9PiAnVG8nLAogICAgICAgICAgICBUaXRsZSAgICAgPT4gJFNlbGYtPntMYW5ndWFnZU9iamVjdH0tPkdldCgnVG8nKSwKICAgICAgICAgICAgRGF0YXR5cGUgID0+ICdUZXh0JywKICAgICAgICAgICAgVmlld3R5cGUgID0+ICdFTWFpbCcsCiAgICAgICAgICAgIE1pbiAgICAgICA9PiAxLAogICAgICAgICAgICBNYXggICAgICAgPT4gNTAsCiAgICAgICAgICAgIE1hbmRhdG9yeSA9PiAwLAogICAgICAgICAgICBEZWZhdWx0ICAgPT4gJENvbXBvc2VEZWZhdWx0c3tUb30gfHwgJycsCiAgICAgICAgfTsKICAgICAgICBwdXNoIEBTY3JlZW5FbGVtZW50cywgJENvbXBvc2VUb0VsZW1lbnRzOwoKICAgICAgICBteSAkQ29tcG9zZUNjRWxlbWVudHMgPSB7CiAgICAgICAgICAgIE5hbWUgICAgICA9PiAnQ2MnLAogICAgICAgICAgICBUaXRsZSAgICAgPT4gJFNlbGYtPntMYW5ndWFnZU9iamVjdH0tPkdldCgnQ2MnKSwKICAgICAgICAgICAgRGF0YXR5cGUgID0+ICdUZXh0JywKICAgICAgICAgICAgVmlld3R5cGUgID0+ICdFTWFpbCcsCiAgICAgICAgICAgIE1pbiAgICAgICA9PiAxLAogICAgICAgICAgICBNYXggICAgICAgPT4gNTAsCiAgICAgICAgICAgIE1hbmRhdG9yeSA9PiAwLAogICAgICAgICAgICBEZWZhdWx0ICAgPT4gJENvbXBvc2VEZWZhdWx0c3tDY30gfHwgJycsCiAgICAgICAgfTsKICAgICAgICBwdXNoIEBTY3JlZW5FbGVtZW50cywgJENvbXBvc2VDY0VsZW1lbnRzOwoKICAgICAgICBteSAkQ29tcG9zZUJjY0VsZW1lbnRzID0gewogICAgICAgICAgICBOYW1lICAgICAgPT4gJ0JjYycsCiAgICAgICAgICAgIFRpdGxlICAgICA9PiAkU2VsZi0+e0xhbmd1YWdlT2JqZWN0fS0+R2V0KCdCY2MnKSwKICAgICAgICAgICAgRGF0YXR5cGUgID0+ICdUZXh0JywKICAgICAgICAgICAgVmlld3R5cGUgID0+ICdFTWFpbCcsCiAgICAgICAgICAgIE1pbiAgICAgICA9PiAxLAogICAgICAgICAgICBNYXggICAgICAgPT4gNTAsCiAgICAgICAgICAgIE1hbmRhdG9yeSA9PiAwLAogICAgICAgICAgICBEZWZhdWx0ICAgPT4gJENvbXBvc2VEZWZhdWx0c3tCY2N9IHx8ICcnLAogICAgICAgIH07CiAgICAgICAgcHVzaCBAU2NyZWVuRWxlbWVudHMsICRDb21wb3NlQmNjRWxlbWVudHM7CgogICAgICAgIG15ICRTdWJqZWN0RWxlbWVudHMgPSB7CiAgICAgICAgICAgIE5hbWUgICAgICA9PiAnU3ViamVjdCcsCiAgICAgICAgICAgIFRpdGxlICAgICA9PiAkU2VsZi0+e0xhbmd1YWdlT2JqZWN0fS0+R2V0KCdTdWJqZWN0JyksCiAgICAgICAgICAgIERhdGF0eXBlICA9PiAnVGV4dCcsCiAgICAgICAgICAgIFZpZXd0eXBlICA9PiAnSW5wdXQnLAogICAgICAgICAgICBNaW4gICAgICAgPT4gMSwKICAgICAgICAgICAgTWF4ICAgICAgID0+IDI1MCwKICAgICAgICAgICAgTWFuZGF0b3J5ID0+IDEsCiAgICAgICAgICAgIERlZmF1bHQgICA9PiAkQ29tcG9zZURlZmF1bHRze1N1YmplY3R9IHx8ICcnLAogICAgICAgIH07CiAgICAgICAgcHVzaCBAU2NyZWVuRWxlbWVudHMsICRTdWJqZWN0RWxlbWVudHM7CgogICAgICAgIG15ICRCb2R5RWxlbWVudHMgPSB7CiAgICAgICAgICAgIE5hbWUgICAgICA9PiAnQm9keScsCiAgICAgICAgICAgIFRpdGxlICAgICA9PiAkU2VsZi0+e0xhbmd1YWdlT2JqZWN0fS0+R2V0KCdUZXh0JyksCiAgICAgICAgICAgIERhdGF0eXBlICA9PiAnVGV4dCcsCiAgICAgICAgICAgIFZpZXd0eXBlICA9PiAnVGV4dEFyZWEnLAogICAgICAgICAgICBNaW4gICAgICAgPT4gMSwKICAgICAgICAgICAgTWF4ICAgICAgID0+IDIwXzAwMCwKICAgICAgICAgICAgTWFuZGF0b3J5ID0+IDEsCiAgICAgICAgICAgIERlZmF1bHQgICA9PiAkQ29tcG9zZURlZmF1bHRze0JvZHl9IHx8ICcnLAogICAgICAgIH07CiAgICAgICAgcHVzaCBAU2NyZWVuRWxlbWVudHMsICRCb2R5RWxlbWVudHM7CiAgICB9CgogICAgIyBzdWJqZWN0CiAgICBpZiAoICRQYXJhbXtTY3JlZW59IG5lICdDb21wb3NlJyApIHsKICAgICAgICBteSAkRGVmYXVsdFN1YmplY3QgPSAnJzsKICAgICAgICBpZiAoICRTZWxmLT57Q29uZmlnfS0+e1N1YmplY3R9ICkgewogICAgICAgICAgICAkRGVmYXVsdFN1YmplY3QgPSAkU2VsZi0+e0xhbmd1YWdlT2JqZWN0fS0+R2V0KCAkU2VsZi0+e0NvbmZpZ30tPntTdWJqZWN0fSApCiAgICAgICAgfQoKICAgICAgICBteSAkU3ViamVjdEVsZW1lbnRzID0gewogICAgICAgICAgICBOYW1lICAgICAgPT4gJ1N1YmplY3QnLAogICAgICAgICAgICBUaXRsZSAgICAgPT4gJFNlbGYtPntMYW5ndWFnZU9iamVjdH0tPkdldCgnU3ViamVjdCcpLAogICAgICAgICAgICBEYXRhdHlwZSAgPT4gJ1RleHQnLAogICAgICAgICAgICBWaWV3dHlwZSAgPT4gJ0lucHV0JywKICAgICAgICAgICAgTWluICAgICAgID0+IDEsCiAgICAgICAgICAgIE1heCAgICAgICA9PiAyNTAsCiAgICAgICAgICAgIE1hbmRhdG9yeSA9PiAxLAogICAgICAgICAgICBEZWZhdWx0ICAgPT4gJERlZmF1bHRTdWJqZWN0IHx8ICcnLAogICAgICAgIH07CiAgICAgICAgcHVzaCBAU2NyZWVuRWxlbWVudHMsICRTdWJqZWN0RWxlbWVudHM7CiAgICB9CgogICAgIyBib2R5CiAgICBpZiAoICRQYXJhbXtTY3JlZW59IG5lICdDb21wb3NlJyApIHsKICAgICAgICBteSAkQm9keUVsZW1lbnRzID0gewogICAgICAgICAgICBOYW1lICAgICAgPT4gJ0JvZHknLAogICAgICAgICAgICBUaXRsZSAgICAgPT4gJFNlbGYtPntMYW5ndWFnZU9iamVjdH0tPkdldCgnVGV4dCcpLAogICAgICAgICAgICBEYXRhdHlwZSAgPT4gJ1RleHQnLAogICAgICAgICAgICBWaWV3dHlwZSAgPT4gJ1RleHRBcmVhJywKICAgICAgICAgICAgTWluICAgICAgID0+IDEsCiAgICAgICAgICAgIE1heCAgICAgICA9PiAyMF8wMDAsCiAgICAgICAgICAgIE1hbmRhdG9yeSA9PiAxLAogICAgICAgICAgICBEZWZhdWx0ICAgPT4gJycsCiAgICAgICAgfTsKICAgICAgICBwdXNoIEBTY3JlZW5FbGVtZW50cywgJEJvZHlFbGVtZW50czsKICAgIH0KCiAgICAjIGN1c3RvbWVyIGlkCiAgICBpZiAoICRTZWxmLT57Q29uZmlnfS0+e0N1c3RvbWVySUR9ICkgewogICAgICAgIG15ICRDdXN0b21lckVsZW1lbnRzID0gewogICAgICAgICAgICBOYW1lICAgICAgPT4gJ0N1c3RvbWVySUQnLAogICAgICAgICAgICBUaXRsZSAgICAgPT4gJFNlbGYtPntMYW5ndWFnZU9iamVjdH0tPkdldCgnQ3VzdG9tZXJJRCcpLAogICAgICAgICAgICBEYXRhdHlwZSAgPT4gJ1RleHQnLAogICAgICAgICAgICBWaWV3dHlwZSAgPT4gJ0lucHV0JywKICAgICAgICAgICAgTWluICAgICAgID0+IDEsCiAgICAgICAgICAgIE1heCAgICAgICA9PiAxNTAsCiAgICAgICAgICAgIE1hbmRhdG9yeSA9PiAwLAogICAgICAgICAgICBEZWZhdWx0ICAgPT4gJycsCiAgICAgICAgfTsKICAgICAgICBwdXNoIEBTY3JlZW5FbGVtZW50cywgJEN1c3RvbWVyRWxlbWVudHM7CiAgICB9CgogICAgI25vdGUKICAgIGlmICggJFNlbGYtPntDb25maWd9LT57Tm90ZX0gKSB7CgogICAgICAgIG15ICREZWZhdWx0QXJ0aWNsZVR5cGU7CiAgICAgICAgaWYgKCAkU2VsZi0+e0NvbmZpZ30tPntBcnRpY2xlVHlwZURlZmF1bHR9ICkgewogICAgICAgICAgICAkRGVmYXVsdEFydGljbGVUeXBlID0gJFNlbGYtPntDb25maWd9LT57QXJ0aWNsZVR5cGVEZWZhdWx0fTsKICAgICAgICB9CgogICAgICAgIG15ICREZWZhdWx0QXJ0aWNsZVR5cGVJRDsKICAgICAgICBpZiAoJERlZmF1bHRBcnRpY2xlVHlwZSkgewogICAgICAgICAgICAkRGVmYXVsdEFydGljbGVUeXBlSUQgPSAkU2VsZi0+e1RpY2tldE9iamVjdH0tPkFydGljbGVUeXBlTG9va3VwKAogICAgICAgICAgICAgICAgQXJ0aWNsZVR5cGUgPT4gJERlZmF1bHRBcnRpY2xlVHlwZSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICAgICAgbXkgJE5vdGVFbGVtZW50cyA9IHsKICAgICAgICAgICAgTmFtZSAgICAgPT4gJ0FydGljbGVUeXBlSUQnLAogICAgICAgICAgICBUaXRsZSAgICA9PiAkU2VsZi0+e0xhbmd1YWdlT2JqZWN0fS0+R2V0KCdOb3RlIHR5cGUnKSwKICAgICAgICAgICAgRGF0YXR5cGUgPT4gJ1RleHQnLAogICAgICAgICAgICBWaWV3dHlwZSA9PiAnUGlja2VyJywKICAgICAgICAgICAgT3B0aW9ucyAgPT4gewogICAgICAgICAgICAgICAgJXsgJFNlbGYtPl9HZXROb3RlVHlwZXMoICVQYXJhbSwgKSB9CiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIE1hbmRhdG9yeSAgICAgPT4gMSwKICAgICAgICAgICAgRGVmYXVsdCAgICAgICA9PiAkRGVmYXVsdEFydGljbGVUeXBlSUQgfHwgJycsCiAgICAgICAgICAgIERlZmF1bHRPcHRpb24gPT4gJERlZmF1bHRBcnRpY2xlVHlwZSB8fCAnJywKICAgICAgICB9OwogICAgICAgIHB1c2ggQFNjcmVlbkVsZW1lbnRzLCAkTm90ZUVsZW1lbnRzOwogICAgfQoKICAgICMgc3RhdGUKICAgIGlmICggJFNlbGYtPntDb25maWd9LT57U3RhdGV9ICkgewoKICAgICAgICBteSAkRGVmYXVsdFN0YXRlOwogICAgICAgIGlmICggJFNlbGYtPntDb25maWd9LT57U3RhdGVEZWZhdWx0fSApIHsKICAgICAgICAgICAgJERlZmF1bHRTdGF0ZSA9ICRTZWxmLT57Q29uZmlnfS0+e1N0YXRlRGVmYXVsdH0KICAgICAgICB9CgogICAgICAgIG15ICREZWZhdWx0U3RhdGVJRDsKICAgICAgICBpZiAoJERlZmF1bHRTdGF0ZSkgewoKICAgICAgICAgICAgIyBjYW4ndCB1c2UgU3RhdGVMb29rdXAgZm9yIDIuNCBmcmFtZXdvcmsgY29tcGF0aWJpbGl0eQogICAgICAgICAgICBteSAlU3RhdGUgPSAkU2VsZi0+e1N0YXRlT2JqZWN0fS0+U3RhdGVHZXQoCiAgICAgICAgICAgICAgICBOYW1lID0+ICREZWZhdWx0U3RhdGUsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICBpZiAoJVN0YXRlKSB7CiAgICAgICAgICAgICAgICAkRGVmYXVsdFN0YXRlSUQgPSAkU3RhdGV7SUR9OwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBteSAkU3RhdGVFbGVtZW50cyA9IHsKICAgICAgICAgICAgTmFtZSAgICAgICAgICAgPT4gJ1N0YXRlSUQnLAogICAgICAgICAgICBUaXRsZSAgICAgICAgICA9PiAkU2VsZi0+e0xhbmd1YWdlT2JqZWN0fS0+R2V0KCdOZXh0IFRpY2tldCBTdGF0ZScpLAogICAgICAgICAgICBEYXRhdHlwZSAgICAgICA9PiAnVGV4dCcsCiAgICAgICAgICAgIFZpZXd0eXBlICAgICAgID0+ICdQaWNrZXInLAogICAgICAgICAgICBEeW5hbWljT3B0aW9ucyA9PiB7CiAgICAgICAgICAgICAgICBPYmplY3QgICAgID0+ICdDdXN0b21PYmplY3QnLAogICAgICAgICAgICAgICAgTWV0aG9kICAgICA9PiAnTmV4dFN0YXRlc0dldCcsCiAgICAgICAgICAgICAgICBQYXJhbWV0ZXJzID0+IFsKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFF1ZXVlSUQgPT4gJ1F1ZXVlSUQnLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICB9LAogICAgICAgICAgICBNYW5kYXRvcnkgICAgID0+IDEsCiAgICAgICAgICAgIERlZmF1bHQgICAgICAgPT4gJERlZmF1bHRTdGF0ZUlEIHx8ICcnLAogICAgICAgICAgICBEZWZhdWx0T3B0aW9uID0+ICREZWZhdWx0U3RhdGUgfHwgJycsCiAgICAgICAgfTsKICAgICAgICBwdXNoIEBTY3JlZW5FbGVtZW50cywgJFN0YXRlRWxlbWVudHM7CiAgICB9CgogICAgIyBwZW5kaW5nIGRhdGUKICAgIGlmICggJFBhcmFte1NjcmVlbn0gZXEgJ1Bob25lJyB8fCAkUGFyYW17U2NyZWVufSBlcSAnQ29tcG9zZScgKSB7CiAgICAgICAgbXkgJFBlbmRpbmdEYXRlRWxlbWVudHMgPSB7CiAgICAgICAgICAgIE5hbWUgICAgICA9PiAnUGVuZGluZ0RhdGUnLAogICAgICAgICAgICBUaXRsZSAgICAgPT4gJFNlbGYtPntMYW5ndWFnZU9iamVjdH0tPkdldCgnUGVuZGluZyBEYXRlIChmb3IgcGVuZGluZyogc3RhdGVzKScpLAogICAgICAgICAgICBEYXRhdHlwZSAgPT4gJ0RhdGVUaW1lJywKICAgICAgICAgICAgVmlld3R5cGUgID0+ICdQaWNrZXInLAogICAgICAgICAgICBNYW5kYXRvcnkgPT4gMCwKICAgICAgICAgICAgRGVmYXVsdCAgID0+ICcnLAogICAgICAgIH07CiAgICAgICAgcHVzaCBAU2NyZWVuRWxlbWVudHMsICRQZW5kaW5nRGF0ZUVsZW1lbnRzOwogICAgfQoKICAgICMgcHJpb3JpdHkKICAgIGlmICggJFBhcmFte1NjcmVlbn0gZXEgJ1Bob25lJyApIHsKCiAgICAgICAgbXkgJERlZmF1bHRQcmlvcml0eTsKICAgICAgICBpZiAoICRTZWxmLT57Q29uZmlnfS0+e1ByaW9yaXR5RGVmYXVsdH0gKSB7CiAgICAgICAgICAgICREZWZhdWx0UHJpb3JpdHkgPSAkU2VsZi0+e0NvbmZpZ30tPntQcmlvcml0eURlZmF1bHR9OwogICAgICAgIH0KCiAgICAgICAgbXkgJERlZmF1bHRQcmlvcml0eUlEOwogICAgICAgIGlmICgkRGVmYXVsdFByaW9yaXR5KSB7CiAgICAgICAgICAgICREZWZhdWx0UHJpb3JpdHlJRCA9ICRTZWxmLT57UHJpb3JpdHlPYmplY3R9LT5Qcmlvcml0eUxvb2t1cCgKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICREZWZhdWx0UHJpb3JpdHksCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICBteSAkUHJpb3JpdHlFbGVtZW50cyA9IHsKICAgICAgICAgICAgTmFtZSAgICAgICAgICAgPT4gJ1ByaW9yaXR5SUQnLAogICAgICAgICAgICBUaXRsZSAgICAgICAgICA9PiAkU2VsZi0+e0xhbmd1YWdlT2JqZWN0fS0+R2V0KCdQcmlvcml0eScpLAogICAgICAgICAgICBEYXRhdHlwZSAgICAgICA9PiAnVGV4dCcsCiAgICAgICAgICAgIFZpZXd0eXBlICAgICAgID0+ICdQaWNrZXInLAogICAgICAgICAgICBEeW5hbWljT3B0aW9ucyA9PiB7CiAgICAgICAgICAgICAgICBPYmplY3QgICAgID0+ICdDdXN0b21PYmplY3QnLAogICAgICAgICAgICAgICAgTWV0aG9kICAgICA9PiAnUHJpb3JpdGllc0dldCcsCiAgICAgICAgICAgICAgICBQYXJhbWV0ZXJzID0+ICcnLAogICAgICAgICAgICB9LAogICAgICAgICAgICBNYW5kYXRvcnkgICAgID0+IDEsCiAgICAgICAgICAgIERlZmF1bHQgICAgICAgPT4gJERlZmF1bHRQcmlvcml0eUlEIHx8ICcnLAogICAgICAgICAgICBEZWZhdWx0T3B0aW9uID0+ICREZWZhdWx0UHJpb3JpdHkgfHwgJycsCiAgICAgICAgfTsKICAgICAgICBwdXNoIEBTY3JlZW5FbGVtZW50cywgJFByaW9yaXR5RWxlbWVudHM7CiAgICB9CgogICAgIyBkeW5hbWljIGZpZWxkcwogICAgIyBnZXQgZHluYW1pYyBmaWVsZCBjb25maWcgZm9yIHRoZSBzY3JlZW4KICAgICRTZWxmLT57RHluYW1pY0ZpZWxkRmlsdGVyfSA9ICRTZWxmLT57Q29uZmlnfS0+e0R5bmFtaWNGaWVsZH07CgogICAgIyBnZXQgdGhlIGR5bmFtaWMgZmllbGRzIGZvciB0aWNrZXQgb2JqZWN0CiAgICAkU2VsZi0+e0R5bmFtaWNGaWVsZH0gPSAkU2VsZi0+e0R5bmFtaWNGaWVsZE9iamVjdH0tPkR5bmFtaWNGaWVsZExpc3RHZXQoCiAgICAgICAgVmFsaWQgICAgICAgPT4gMSwKICAgICAgICBPYmplY3RUeXBlICA9PiBbICdUaWNrZXQnLCAnQXJ0aWNsZScgXSwKICAgICAgICBGaWVsZEZpbHRlciA9PiAkU2VsZi0+e0R5bmFtaWNGaWVsZEZpbHRlcn0gfHwge30sCiAgICApOwoKICAgICMgZ2V0IHVzZXIgcHJlZmVyZW5jZXMKICAgIG15ICVVc2VyUHJlZmVyZW5jZXMgPSAkU2VsZi0+e1VzZXJPYmplY3R9LT5HZXRQcmVmZXJlbmNlcyggVXNlcklEID0+ICRQYXJhbXtVc2VySUR9ICk7CgogICAgIyBjeWNsZSB0cm91Z2ggdGhlIGFjdGl2YXRlZCBEeW5hbWljIEZpZWxkcyBmb3IgdGhpcyBzY3JlZW4KICAgIERZTkFNSUNGSUVMRDoKICAgIGZvciBteSAkRHluYW1pY0ZpZWxkQ29uZmlnICggQHsgJFNlbGYtPntEeW5hbWljRmllbGR9IH0gKSB7CiAgICAgICAgbmV4dCBEWU5BTUlDRklFTEQgaWYgIUlzSGFzaFJlZldpdGhEYXRhKCREeW5hbWljRmllbGRDb25maWcpOwogICAgICAgIG5leHQgRFlOQU1JQ0ZJRUxEIGlmICFJc0hhc2hSZWZXaXRoRGF0YSggJER5bmFtaWNGaWVsZENvbmZpZy0+e0NvbmZpZ30gKTsKICAgICAgICBuZXh0IERZTkFNSUNGSUVMRCBpZiAhJER5bmFtaWNGaWVsZENvbmZpZy0+e05hbWV9OwoKICAgICAgICAjIHNraXAgYWxsIGR5bmFtaWMgZmllbGRzIHRoYXQgYXJlIG5vdCBkZXNpZ25lZCByZW5kZXIgaW4gaVBob25lIEFwcAogICAgICAgIG15ICRJc0lQaG9uZUNhcGFibGUgPSAkU2VsZi0+e0JhY2tlbmRPYmplY3R9LT5IYXNCZWhhdmlvcigKICAgICAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnID0+ICREeW5hbWljRmllbGRDb25maWcsCiAgICAgICAgICAgIEJlaGF2aW9yICAgICAgICAgICA9PiAnSXNJUGhvbmVDYXBhYmxlJywKICAgICAgICApOwogICAgICAgIG5leHQgRFlOQU1JQ0ZJRUxEIGlmICEkSXNJUGhvbmVDYXBhYmxlOwoKICAgICAgICAjIGNyZWF0ZSAkVmFsdWUgYXMgdW5kZWZpbmVkIGJlY2F1c2UgYSB1c2VyIGRlZmF1bHQgdmFsdWUgY291bGQgYmUgJycKICAgICAgICBteSAkVmFsdWUgPSB1bmRlZjsKCiAgICAgICAgIyBvdmVycmlkZSB0aGUgdmFsdWUgZnJvbSB1c2VyIHByZWZlcmVuY2VzIGlmIGlzIHNldAogICAgICAgIGlmICggJFVzZXJQcmVmZXJlbmNlc3sgJ1VzZXJEeW5hbWljRmllbGRfJyAuICREeW5hbWljRmllbGRDb25maWctPntOYW1lfSB9ICkgewogICAgICAgICAgICAkVmFsdWUgPSAkVXNlclByZWZlcmVuY2VzeyAnVXNlckR5bmFtaWNGaWVsZF8nIC4gJER5bmFtaWNGaWVsZENvbmZpZy0+e05hbWV9IH07CiAgICAgICAgfQoKICAgICAgICBpZiAoICRQYXJhbXtUaWNrZXRJRH0gJiYgJER5bmFtaWNGaWVsZENvbmZpZy0+e09iamVjdFR5cGV9IGVxICdUaWNrZXQnICkgewogICAgICAgICAgICAkVmFsdWUgPSAkU2VsZi0+e0JhY2tlbmRPYmplY3R9LT5WYWx1ZUdldCgKICAgICAgICAgICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyA9PiAkRHluYW1pY0ZpZWxkQ29uZmlnLAogICAgICAgICAgICAgICAgT2JqZWN0SUQgICAgICAgICAgID0+ICRQYXJhbXtUaWNrZXRJRH0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICBteSAkRmllbGREZWZpbml0aW9uID0gJFNlbGYtPntCYWNrZW5kT2JqZWN0fS0+SVBob25lRmllbGRQYXJhbWV0ZXJCdWlsZCgKICAgICAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnID0+ICREeW5hbWljRmllbGRDb25maWcsCiAgICAgICAgICAgIFZhbHVlICAgICAgICAgICAgICA9PiAkVmFsdWUsCiAgICAgICAgICAgIFVzZURlZmF1bHRWYWx1ZSAgICA9PiAxLAogICAgICAgICAgICBMYW5ndWFnZU9iamVjdCAgICAgPT4gJFNlbGYtPntMYW5ndWFnZU9iamVjdH0sCiAgICAgICAgICAgIE1hbmRhdG9yeSA9PiAkU2VsZi0+e0NvbmZpZ30tPntEeW5hbWljRmllbGR9LT57ICREeW5hbWljRmllbGRDb25maWctPntOYW1lfSB9ID09IDIsCiAgICAgICAgKTsKCiAgICAgICAgIyBjaGVjayBpZiB0aGUgRmllbGREZWZpbml0aW9uIGlzIGRlZmluZWQgYW5kIGNvdGFpbiBkYXRhLCBvdGhlcndpc2UgYW4gdW5kZWYgdmFyaWFibGUgaW4KICAgICAgICAjIHRoaXMgcG9pbnQgd2lsbCBjYXVzZSBhIE5VTEwgZWxlbWVudCBpbiB0aGUgQVJSQVkgYW5kIHdpbGwgY2F1c2UgaVBob25lIEFwcCB0byBjcmFzaAogICAgICAgIGlmICggSXNIYXNoUmVmV2l0aERhdGEoJEZpZWxkRGVmaW5pdGlvbikgKSB7CiAgICAgICAgICAgIHB1c2ggQFNjcmVlbkVsZW1lbnRzLCAkRmllbGREZWZpbml0aW9uOwogICAgICAgIH0KICAgIH0KCiAgICAjIHRpbWUgdW5pdHMKICAgIGlmICggJFNlbGYtPntDb25maWd9LT57VGltZVVuaXRzfSApIHsKICAgICAgICBteSAkTWFuZGF0b3J5OwogICAgICAgIGlmICggJFNlbGYtPntDb25maWdPYmplY3R9LT5HZXQoJ1RpY2tldDo6RnJvbnRlbmQ6Ok5lZWRBY2NvdW50ZWRUaW1lJykgKSB7CiAgICAgICAgICAgICRNYW5kYXRvcnkgPSAxOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgJE1hbmRhdG9yeSA9IDA7CiAgICAgICAgfQogICAgICAgIG15ICRUaW1lVW5pdHNNZWFzdXJlICA9ICRTZWxmLT57Q29uZmlnT2JqZWN0fS0+R2V0KCdUaWNrZXQ6OkZyb250ZW5kOjpUaW1lVW5pdHMnKTsKICAgICAgICBteSAkVGltZVVuaXRzRWxlbWVudHMgPSB7CiAgICAgICAgICAgIE5hbWUgICAgICA9PiAnVGltZVVuaXRzJywKICAgICAgICAgICAgVGl0bGUgICAgID0+ICRTZWxmLT57TGFuZ3VhZ2VPYmplY3R9LT5HZXQoIlRpbWUgdW5pdHMgJFRpbWVVbml0c01lYXN1cmUiKSwKICAgICAgICAgICAgRGF0YXR5cGUgID0+ICdOdW1lcmljJywKICAgICAgICAgICAgVmlld3R5cGUgID0+ICdJbnB1dCcsCiAgICAgICAgICAgIE1pbiAgICAgICA9PiAxLAogICAgICAgICAgICBNYXggICAgICAgPT4gMTAsCiAgICAgICAgICAgIE1hbmRhdG9yeSA9PiAkTWFuZGF0b3J5LAogICAgICAgICAgICBEZWZhdWx0ICAgPT4gJycsCiAgICAgICAgfTsKICAgICAgICBwdXNoIEBTY3JlZW5FbGVtZW50cywgJFRpbWVVbml0c0VsZW1lbnRzOwogICAgfQogICAgcmV0dXJuIFxAU2NyZWVuRWxlbWVudHM7Cn0KCnN1YiBfVGlja2V0UGhvbmVOZXcgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAkU2VsZi0+e0NvbmZpZ30gPSAkU2VsZi0+e0NvbmZpZ09iamVjdH0tPkdldCgnaVBob25lOjpGcm9udGVuZDo6QWdlbnRUaWNrZXRQaG9uZScpOwoKICAgIG15ICVTdGF0ZURhdGEgPSAoKTsKICAgIGlmICggJFBhcmFte1N0YXRlSUR9ICkgewogICAgICAgICVTdGF0ZURhdGEgPSAkU2VsZi0+e1RpY2tldE9iamVjdH0tPntTdGF0ZU9iamVjdH0tPlN0YXRlR2V0KAogICAgICAgICAgICBJRCA9PiAkUGFyYW17U3RhdGVJRH0sCiAgICAgICAgKTsKICAgIH0KCiAgICAjIHRyYW5zZm9ybSBwZW5kaW5nIHRpbWUsIHRpbWUgc3RhbXAgYmFzZWQgb24gdXNlciB0aW1lIHpvbmUKICAgIGlmICggSXNTdHJpbmdXaXRoRGF0YSggJFBhcmFte1BlbmRpbmdEYXRlfSApICkgewogICAgICAgICRQYXJhbXtQZW5kaW5nRGF0ZX0gPSAkU2VsZi0+X1RyYW5zZm9ybURhdGVTZWxlY3Rpb24oCiAgICAgICAgICAgIFRpbWVTdGFtcCA9PiAkUGFyYW17UGVuZGluZ0RhdGV9LAogICAgICAgICk7CiAgICB9CgogICAgbXkgJFVzZXJUaW1lWm9uZSA9ICRTZWxmLT57VXNlclRpbWVab25lfTsKCiAgICAjIGdldCBkeW5hbWljIGZpZWxkIGNvbmZpZyBmb3IgdGhlIHNjcmVlbgogICAgJFNlbGYtPntEeW5hbWljRmllbGRGaWx0ZXJ9ID0gJFNlbGYtPntDb25maWd9LT57RHluYW1pY0ZpZWxkfTsKCiAgICAjIGdldCB0aGUgZHluYW1pYyBmaWVsZHMgZm9yIHRpY2tldCBvYmplY3QKICAgICRTZWxmLT57RHluYW1pY0ZpZWxkfSA9ICRTZWxmLT57RHluYW1pY0ZpZWxkT2JqZWN0fS0+RHluYW1pY0ZpZWxkTGlzdEdldCgKICAgICAgICBWYWxpZCAgICAgICA9PiAxLAogICAgICAgIE9iamVjdFR5cGUgID0+IFsgJ1RpY2tldCcsICdBcnRpY2xlJyBdLAogICAgICAgIEZpZWxkRmlsdGVyID0+ICRTZWxmLT57RHluYW1pY0ZpZWxkRmlsdGVyfSB8fCB7fSwKICAgICk7CgogICAgbXkgJUR5bmFtaWNGaWVsZFZhbHVlczsKCiAgICAjIGN5Y2xlIHRyb3VnaCB0aGUgYWN0aXZhdGVkIER5bmFtaWMgRmllbGRzIGZvciB0aGlzIHNjcmVlbgogICAgRFlOQU1JQ0ZJRUxEOgogICAgZm9yIG15ICREeW5hbWljRmllbGRDb25maWcgKCBAeyAkU2VsZi0+e0R5bmFtaWNGaWVsZH0gfSApIHsKICAgICAgICBuZXh0IERZTkFNSUNGSUVMRCBpZiAhSXNIYXNoUmVmV2l0aERhdGEoJER5bmFtaWNGaWVsZENvbmZpZyk7CiAgICAgICAgbmV4dCBEWU5BTUlDRklFTEQgaWYgIUlzSGFzaFJlZldpdGhEYXRhKCAkRHluYW1pY0ZpZWxkQ29uZmlnLT57Q29uZmlnfSApOwogICAgICAgIG5leHQgRFlOQU1JQ0ZJRUxEIGlmICEkRHluYW1pY0ZpZWxkQ29uZmlnLT57TmFtZX07CgogICAgICAgICMgc2tpcCBhbGwgZHluYW1pYyBmaWVsZHMgdGhhdCBhcmUgbm90IGRlc2lnbmVkIHJlbmRlciBpbiBpUGhvbmUgQXBwCiAgICAgICAgbXkgJElzSVBob25lQ2FwYWJsZSA9ICRTZWxmLT57QmFja2VuZE9iamVjdH0tPkhhc0JlaGF2aW9yKAogICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgPT4gJER5bmFtaWNGaWVsZENvbmZpZywKICAgICAgICAgICAgQmVoYXZpb3IgICAgICAgICAgID0+ICdJc0lQaG9uZUNhcGFibGUnLAogICAgICAgICk7CiAgICAgICAgbmV4dCBEWU5BTUlDRklFTEQgaWYgISRJc0lQaG9uZUNhcGFibGU7CgogICAgICAgICMgZXh0cmFjdCB0aGUgZHluYW1pYyBmaWVsZCB2YWx1ZSBmb3JtIHBhcmFtZXRlcnMKICAgICAgICAkRHluYW1pY0ZpZWxkVmFsdWVzeyAkRHluYW1pY0ZpZWxkQ29uZmlnLT57TmFtZX0gfQogICAgICAgICAgICA9ICRTZWxmLT57QmFja2VuZE9iamVjdH0tPklQaG9uZUZpZWxkVmFsdWVHZXQoCiAgICAgICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyA9PiAkRHluYW1pY0ZpZWxkQ29uZmlnLAogICAgICAgICAgICBUcmFuc2Zvcm1EYXRlcyAgICAgPT4gMSwKICAgICAgICAgICAgVXNlclRpbWVab25lICAgICAgID0+ICRVc2VyVGltZVpvbmUgfHwgMCwKICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICAgICApOwoKICAgICAgICAjIHBlcmZvcm0gdmFsaWRhdGlvbiBvZiB0aGUgZGF0YQogICAgICAgIG15ICRWYWxpZGF0aW9uUmVzdWx0ID0gJFNlbGYtPntCYWNrZW5kT2JqZWN0fS0+SVBob25lRmllbGRWYWx1ZVZhbGlkYXRlKAogICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgPT4gJER5bmFtaWNGaWVsZENvbmZpZywKICAgICAgICAgICAgVmFsdWUgICAgICAgICAgICAgID0+ICREeW5hbWljRmllbGRWYWx1ZXN7ICREeW5hbWljRmllbGRDb25maWctPntOYW1lfSB9LAogICAgICAgICAgICBNYW5kYXRvcnkgPT4gJFNlbGYtPntDb25maWd9LT57RHluYW1pY0ZpZWxkfS0+eyAkRHluYW1pY0ZpZWxkQ29uZmlnLT57TmFtZX0gfSA9PSAyLAogICAgICAgICk7CgogICAgICAgIGlmICggIUlzSGFzaFJlZldpdGhEYXRhKCRWYWxpZGF0aW9uUmVzdWx0KSApIHsKICAgICAgICAgICAgJFNlbGYtPntMb2dPYmplY3R9LT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIkNvdWxkIG5vdCBwZXJmb3JtIHZhbGlkYXRpb24gb24gZmllbGQgJER5bmFtaWNGaWVsZENvbmZpZy0+e0xhYmVsfSEiLAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQoKICAgICAgICAjIHByb3BhZ2F0ZSB2YWxpZGF0aW9uIGVycm9yCiAgICAgICAgaWYgKCAkVmFsaWRhdGlvblJlc3VsdC0+e1NlcnZlckVycm9yfSApIHsKCiAgICAgICAgICAgIG15ICRFcnJvck1lc3NhZ2UgPSAkVmFsaWRhdGlvblJlc3VsdC0+e0Vycm9yTWVzc2FnZX0KICAgICAgICAgICAgICAgIHx8ICJEeW5hbWljIGZpZWxkICREeW5hbWljRmllbGRDb25maWctPntMYWJlbH0gaW52YWxpZCI7CgogICAgICAgICAgICAkU2VsZi0+e0xvZ09iamVjdH0tPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAkRXJyb3JNZXNzYWdlLAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgIG15ICRDdXN0b21lclVzZXIgPSAkUGFyYW17Q3VzdG9tZXJVc2VyTG9naW59OwogICAgbXkgJEN1c3RvbWVySUQgPSAkUGFyYW17Q3VzdG9tZXJJRH0gfHwgJyc7CgogICAgIyByZXdyYXAgYm9keSBpZiBleGlzdHMKICAgIGlmICggJFNlbGYtPntDb25maWdPYmplY3R9LT5HZXQoJ0Zyb250ZW5kOjpSaWNoVGV4dCcpICYmICRQYXJhbXtCb2R5fSApIHsKICAgICAgICAkUGFyYW17Qm9keX0KICAgICAgICAgICAgPX4gcy8oXj4uK3wuezQsJFNlbGYtPntDb25maWdPYmplY3R9LT5HZXQoJ1RpY2tldDo6RnJvbnRlbmQ6OlRleHRBcmVhTm90ZScpfSkoPzpcc3xceikvJDFcbi9nbTsKICAgIH0KCiAgICAjIGNoZWNrIHBlbmRpbmcgZGF0ZQogICAgaWYgKCAkU3RhdGVEYXRhe1R5cGVOYW1lfSAmJiAkU3RhdGVEYXRhe1R5cGVOYW1lfSA9fiAvXnBlbmRpbmcvaSApIHsKICAgICAgICBpZiAoICEkU2VsZi0+e1RpbWVPYmplY3R9LT5UaW1lU3RhbXAyU3lzdGVtVGltZSggU3RyaW5nID0+ICRQYXJhbXtQZW5kaW5nRGF0ZX0gKSApIHsKICAgICAgICAgICAgJFNlbGYtPntMb2dPYmplY3R9LT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gJ0RhdGUgaW52YWxpZCcsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICAgICAgaWYgKAogICAgICAgICAgICAkU2VsZi0+e1RpbWVPYmplY3R9LT5UaW1lU3RhbXAyU3lzdGVtVGltZSggU3RyaW5nID0+ICRQYXJhbXtQZW5kaW5nRGF0ZX0gKQogICAgICAgICAgICA8ICRTZWxmLT57VGltZU9iamVjdH0tPlN5c3RlbVRpbWUoKQogICAgICAgICAgICApCiAgICAgICAgewogICAgICAgICAgICAkU2VsZi0+e0xvZ09iamVjdH0tPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAnRGF0ZSBpbnZhbGlkJywKICAgICAgICAgICAgKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICAjZ2V0IGN1c3RvbWVyIGluZm8KICAgIG15ICVDdXN0b21lclVzZXJEYXRhID0gJFNlbGYtPntDdXN0b21lclVzZXJPYmplY3R9LT5DdXN0b21lclVzZXJEYXRhR2V0KAogICAgICAgIFVzZXIgPT4gJEN1c3RvbWVyVXNlciwKICAgICk7CiAgICBteSAlQ3VzdG9tZXJVc2VyTGlzdCA9ICRTZWxmLT57Q3VzdG9tZXJVc2VyT2JqZWN0fS0+Q3VzdG9tZXJTZWFyY2goCiAgICAgICAgVXNlckxvZ2luID0+ICRDdXN0b21lclVzZXIsCiAgICApOwogICAgbXkgJEZyb207CiAgICBpZiAoJUN1c3RvbWVyVXNlckxpc3QpIHsKICAgICAgICBmb3IgKCBzb3J0IGtleXMgJUN1c3RvbWVyVXNlckxpc3QgKSB7CgogICAgICAgICAgICBpZiAoICRQYXJhbXtDdXN0b21lclVzZXJMb2dpbn0gZXEgJF8gKSB7CiAgICAgICAgICAgICAgICAkRnJvbSA9ICRDdXN0b21lclVzZXJMaXN0eyRffQogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgJEZyb20gPSAkQ3VzdG9tZXJVc2VyOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQogICAgZWxzZSB7CiAgICAgICAgJEZyb20gPSAkQ3VzdG9tZXJVc2VyOwogICAgfQoKICAgICMgY2hlY2sgZW1haWwgYWRkcmVzcwogICAgZm9yIG15ICRFbWFpbCAoIE1haWw6OkFkZHJlc3MtPnBhcnNlKCAkQ3VzdG9tZXJVc2VyRGF0YXtVc2VyRW1haWx9ICkgKSB7CiAgICAgICAgaWYgKCAhJFNlbGYtPntDaGVja0l0ZW1PYmplY3R9LT5DaGVja0VtYWlsKCBBZGRyZXNzID0+ICRFbWFpbC0+YWRkcmVzcygpICkgKSB7CiAgICAgICAgICAgIG15ICRTZXJ2ZXJFcnJvciA9ICRTZWxmLT57Q2hlY2tJdGVtT2JqZWN0fS0+Q2hlY2tFcnJvcigpOwogICAgICAgICAgICAkU2VsZi0+e0xvZ09iamVjdH0tPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiRXJyb3Igb24gZmllbGQgXCJGcm9tXCIgIFxuICRTZXJ2ZXJFcnJvciIsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CiAgICBpZiAoICEkUGFyYW17Q3VzdG9tZXJVc2VyTG9naW59ICkgewogICAgICAgICRTZWxmLT57TG9nT2JqZWN0fS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAnRnJvbSBpbnZhbGlkOiBGcm9tIGlzIGVtcHR5JywKICAgICAgICApOwogICAgICAgIHJldHVybjsKICAgIH0KICAgIGlmICggISRQYXJhbXtTdWJqZWN0fSApIHsKICAgICAgICAkU2VsZi0+e0xvZ09iamVjdH0tPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gJ1N1YmplY3QgaW52YWxpZDogU3ViamVjdCBpcyBlbXB0eScsCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CiAgICBpZiAoICEkUGFyYW17UXVldWVJRH0gKSB7CiAgICAgICAgJFNlbGYtPntMb2dPYmplY3R9LT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICdEZXN0aW5hdGlvbiBpbnZhbGlkOiBEZXN0aW5hdGlvbiBxdWV1ZSBpcyBlbXB0eScsCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CiAgICBpZiAoCiAgICAgICAgJFNlbGYtPntDb25maWdPYmplY3R9LT5HZXQoJ1RpY2tldDo6U2VydmljZScpCiAgICAgICAgJiYgJFBhcmFte1NMQUlEfQogICAgICAgICYmICEkUGFyYW17U2VydmljZUlEfQogICAgICAgICkKICAgIHsKICAgICAgICAkU2VsZi0+e0xvZ09iamVjdH0tPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gJ1NlcnZpY2UgaW52YWxpZDogbm8gc2VydmljZSBzZWxlY3RlZCcsCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgIyBjcmVhdGUgbmV3IHRpY2tldCwgZG8gZGIgaW5zZXJ0CiAgICBteSAkVGlja2V0SUQgPSAkU2VsZi0+e1RpY2tldE9iamVjdH0tPlRpY2tldENyZWF0ZSgKICAgICAgICBUaXRsZSAgICAgICAgPT4gJFBhcmFte1N1YmplY3R9LAogICAgICAgIFF1ZXVlSUQgICAgICA9PiAkUGFyYW17UXVldWVJRH0sCiAgICAgICAgU3ViamVjdCAgICAgID0+ICRQYXJhbXtTdWJqZWN0fSwKICAgICAgICBMb2NrICAgICAgICAgPT4gJ3VubG9jaycsCiAgICAgICAgVHlwZUlEICAgICAgID0+ICRQYXJhbXtUeXBlSUR9LAogICAgICAgIFNlcnZpY2VJRCAgICA9PiAkUGFyYW17U2VydmljZUlEfSwKICAgICAgICBTTEFJRCAgICAgICAgPT4gJFBhcmFte1NMQUlEfSwKICAgICAgICBTdGF0ZUlEICAgICAgPT4gJFBhcmFte1N0YXRlSUR9LAogICAgICAgIFByaW9yaXR5SUQgICA9PiAkUGFyYW17UHJpb3JpdHlJRH0sCiAgICAgICAgT3duZXJJRCAgICAgID0+IDEsCiAgICAgICAgQ3VzdG9tZXJObyAgID0+ICRDdXN0b21lcklELAogICAgICAgIEN1c3RvbWVyVXNlciA9PiAkQ3VzdG9tZXJVc2VyLAogICAgICAgIFVzZXJJRCAgICAgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICk7CiAgICBpZiAoICEkVGlja2V0SUQgKSB7CiAgICAgICAgJFNlbGYtPntMb2dPYmplY3R9LT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICdFcnJvcjogTm8gdGlja2V0IGNyZWF0ZWQhIFBsZWFzZSBjb250YWN0IGFkbWluJywKICAgICAgICApOwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICAjIHNldCB0aWNrZXQgZHluYW1pYyBmaWVsZHMKICAgICMgY3ljbGUgdHJvdWdoIHRoZSBhY3RpdmF0ZWQgRHluYW1pYyBGaWVsZHMgZm9yIHRoaXMgc2NyZWVuCiAgICBEWU5BTUlDRklFTEQ6CiAgICBmb3IgbXkgJER5bmFtaWNGaWVsZENvbmZpZyAoIEB7ICRTZWxmLT57RHluYW1pY0ZpZWxkfSB9ICkgewogICAgICAgIG5leHQgRFlOQU1JQ0ZJRUxEIGlmICFJc0hhc2hSZWZXaXRoRGF0YSgkRHluYW1pY0ZpZWxkQ29uZmlnKTsKICAgICAgICBuZXh0IERZTkFNSUNGSUVMRCBpZiAkRHluYW1pY0ZpZWxkQ29uZmlnLT57T2JqZWN0VHlwZX0gbmUgJ1RpY2tldCc7CgogICAgICAgICMgc2tpcCBhbGwgZHluYW1pYyBmaWVsZHMgdGhhdCBhcmUgbm90IGRlc2lnbmVkIHJlbmRlciBpbiBpUGhvbmUgQXBwCiAgICAgICAgbXkgJElzSVBob25lQ2FwYWJsZSA9ICRTZWxmLT57QmFja2VuZE9iamVjdH0tPkhhc0JlaGF2aW9yKAogICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgPT4gJER5bmFtaWNGaWVsZENvbmZpZywKICAgICAgICAgICAgQmVoYXZpb3IgICAgICAgICAgID0+ICdJc0lQaG9uZUNhcGFibGUnLAogICAgICAgICk7CiAgICAgICAgbmV4dCBEWU5BTUlDRklFTEQgaWYgISRJc0lQaG9uZUNhcGFibGU7CgogICAgICAgICMgc2V0IHRoZSB2YWx1ZQogICAgICAgIG15ICRTdWNjZXNzID0gJFNlbGYtPntCYWNrZW5kT2JqZWN0fS0+VmFsdWVTZXQoCiAgICAgICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyA9PiAkRHluYW1pY0ZpZWxkQ29uZmlnLAogICAgICAgICAgICBPYmplY3RJRCAgICAgICAgICAgPT4gJFRpY2tldElELAogICAgICAgICAgICBWYWx1ZSAgICAgICAgICAgICAgPT4gJER5bmFtaWNGaWVsZFZhbHVlc3sgJER5bmFtaWNGaWVsZENvbmZpZy0+e05hbWV9IH0sCiAgICAgICAgICAgIFVzZXJJRCAgICAgICAgICAgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICApOwogICAgfQoKICAgIG15ICRNaW1lVHlwZSA9ICd0ZXh0L3BsYWluJzsKCiAgICAjIGNoZWNrIGlmIG5ldyBvd25lciBpcyBnaXZlbiAodGhlbiBzZW5kIG5vIGFnZW50IG5vdGlmeSkKICAgIG15ICROb0FnZW50Tm90aWZ5ID0gMDsKICAgIGlmICggJFBhcmFte093bmVySUR9ICkgewogICAgICAgICROb0FnZW50Tm90aWZ5ID0gMTsKICAgIH0KICAgIG15ICRRdWV1ZU5hbWUgPSAkU2VsZi0+e1F1ZXVlT2JqZWN0fS0+UXVldWVMb29rdXAoIFF1ZXVlSUQgPT4gJFBhcmFte1F1ZXVlSUR9ICk7CgogICAgbXkgJEFydGljbGVJRCA9ICRTZWxmLT57VGlja2V0T2JqZWN0fS0+QXJ0aWNsZUNyZWF0ZSgKICAgICAgICBOb0FnZW50Tm90aWZ5ID0+ICROb0FnZW50Tm90aWZ5LAogICAgICAgIFRpY2tldElEICAgICAgPT4gJFRpY2tldElELAogICAgICAgIEFydGljbGVUeXBlICAgPT4gJFNlbGYtPntDb25maWd9LT57QXJ0aWNsZVR5cGVEZWZhdWx0fSwKICAgICAgICBTZW5kZXJUeXBlICAgID0+ICRTZWxmLT57Q29uZmlnfS0+e1NlbmRlclR5cGV9LAogICAgICAgIEZyb20gICAgICAgICAgPT4gJEZyb20sCiAgICAgICAgVG8gICAgICAgICAgICA9PiAkUXVldWVOYW1lLAogICAgICAgIFN1YmplY3QgICAgICAgPT4gJFBhcmFte1N1YmplY3R9LAogICAgICAgIEJvZHkgICAgICAgICAgPT4gJFBhcmFte0JvZHl9LAogICAgICAgIE1pbWVUeXBlICAgICAgPT4gJE1pbWVUeXBlLAoKICAgICAgICAjIGlwaG9uZSBtdXN0IHNlbmQgaW5mbyBpbiBjdXJyZW50IGNoYXJzZXQKICAgICAgICBDaGFyc2V0ICAgICAgICAgID0+ICRTZWxmLT57Q29uZmlnT2JqZWN0fS0+R2V0KCdEZWZhdWx0Q2hhcnNldCcpLAogICAgICAgIFVzZXJJRCAgICAgICAgICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgSGlzdG9yeVR5cGUgICAgICA9PiAkU2VsZi0+e0NvbmZpZ30tPntIaXN0b3J5VHlwZX0sCiAgICAgICAgSGlzdG9yeUNvbW1lbnQgICA9PiAkU2VsZi0+e0NvbmZpZ30tPntIaXN0b3J5Q29tbWVudH0gfHwgJyUlJywKICAgICAgICBBdXRvUmVzcG9uc2VUeXBlID0+ICdhdXRvIHJlcGx5JywKICAgICAgICBPcmlnSGVhZGVyICAgICAgID0+IHsKICAgICAgICAgICAgRnJvbSAgICA9PiAkRnJvbSwKICAgICAgICAgICAgVG8gICAgICA9PiAkUXVldWVOYW1lLAogICAgICAgICAgICBTdWJqZWN0ID0+ICRQYXJhbXtTdWJqZWN0fSwKICAgICAgICAgICAgQm9keSAgICA9PiAkUGFyYW17Qm9keX0sCiAgICAgICAgfSwKICAgICAgICBRdWV1ZSA9PiAkUXVldWVOYW1lLAogICAgKTsKCiAgICBpZiAoJEFydGljbGVJRCkgewoKICAgICAgICAjIHNldCB0aWNrZXQgZHluYW1pYyBmaWVsZHMKICAgICAgICAjIGN5Y2xlIHRyb3VnaCB0aGUgYWN0aXZhdGVkIER5bmFtaWMgRmllbGRzIGZvciB0aGlzIHNjcmVlbgogICAgICAgIERZTkFNSUNGSUVMRDoKICAgICAgICBmb3IgbXkgJER5bmFtaWNGaWVsZENvbmZpZyAoIEB7ICRTZWxmLT57RHluYW1pY0ZpZWxkfSB9ICkgewogICAgICAgICAgICBuZXh0IERZTkFNSUNGSUVMRCBpZiAhSXNIYXNoUmVmV2l0aERhdGEoJER5bmFtaWNGaWVsZENvbmZpZyk7CiAgICAgICAgICAgIG5leHQgRFlOQU1JQ0ZJRUxEIGlmICREeW5hbWljRmllbGRDb25maWctPntPYmplY3RUeXBlfSBuZSAnQXJ0aWNsZSc7CgogICAgICAgICAgICAjIHNraXAgYWxsIGR5bmFtaWMgZmllbGRzIHRoYXQgYXJlIG5vdCBkZXNpZ25lZCByZW5kZXIgaW4gaVBob25lIEFwcAogICAgICAgICAgICBteSAkSXNJUGhvbmVDYXBhYmxlID0gJFNlbGYtPntCYWNrZW5kT2JqZWN0fS0+SGFzQmVoYXZpb3IoCiAgICAgICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgPT4gJER5bmFtaWNGaWVsZENvbmZpZywKICAgICAgICAgICAgICAgIEJlaGF2aW9yICAgICAgICAgICA9PiAnSXNJUGhvbmVDYXBhYmxlJywKICAgICAgICAgICAgKTsKICAgICAgICAgICAgbmV4dCBEWU5BTUlDRklFTEQgaWYgISRJc0lQaG9uZUNhcGFibGU7CgogICAgICAgICAgICAjIHNldCB0aGUgdmFsdWUKICAgICAgICAgICAgbXkgJFN1Y2Nlc3MgPSAkU2VsZi0+e0JhY2tlbmRPYmplY3R9LT5WYWx1ZVNldCgKICAgICAgICAgICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyA9PiAkRHluYW1pY0ZpZWxkQ29uZmlnLAogICAgICAgICAgICAgICAgT2JqZWN0SUQgICAgICAgICAgID0+ICRBcnRpY2xlSUQsCiAgICAgICAgICAgICAgICBWYWx1ZSAgICAgICAgICAgICAgPT4gJER5bmFtaWNGaWVsZFZhbHVlc3sgJER5bmFtaWNGaWVsZENvbmZpZy0+e05hbWV9IH0sCiAgICAgICAgICAgICAgICBVc2VySUQgICAgICAgICAgICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICAjIHNldCBvd25lciAoaWYgbmV3IHVzZXIgaWQgaXMgZ2l2ZW4pCiAgICAgICAgaWYgKCAkUGFyYW17T3duZXJJRH0gKSB7CiAgICAgICAgICAgICRTZWxmLT57VGlja2V0T2JqZWN0fS0+VGlja2V0T3duZXJTZXQoCiAgICAgICAgICAgICAgICBUaWNrZXRJRCAgPT4gJFRpY2tldElELAogICAgICAgICAgICAgICAgTmV3VXNlcklEID0+ICRQYXJhbXtPd25lcklEfSwKICAgICAgICAgICAgICAgIFVzZXJJRCAgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICMgc2V0IGxvY2sKICAgICAgICAgICAgJFNlbGYtPntUaWNrZXRPYmplY3R9LT5UaWNrZXRMb2NrU2V0KAogICAgICAgICAgICAgICAgVGlja2V0SUQgPT4gJFRpY2tldElELAogICAgICAgICAgICAgICAgTG9jayAgICAgPT4gJ2xvY2snLAogICAgICAgICAgICAgICAgVXNlcklEICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICAjIGVsc2Ugc2V0IG93bmVyIHRvIGN1cnJlbnQgYWdlbnQgYnV0IGRvIG5vdCBsb2NrIGl0CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICRTZWxmLT57VGlja2V0T2JqZWN0fS0+VGlja2V0T3duZXJTZXQoCiAgICAgICAgICAgICAgICBUaWNrZXRJRCAgICAgICAgICAgPT4gJFRpY2tldElELAogICAgICAgICAgICAgICAgTmV3VXNlcklEICAgICAgICAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICAgICAgU2VuZE5vTm90aWZpY2F0aW9uID0+IDEsCiAgICAgICAgICAgICAgICBVc2VySUQgICAgICAgICAgICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICAjIHNldCByZXNwb25zaWJsZSAoaWYgbmV3IHVzZXIgaWQgaXMgZ2l2ZW4pCiAgICAgICAgaWYgKCAkUGFyYW17UmVzcG9uc2libGVJRH0gKSB7CiAgICAgICAgICAgICRTZWxmLT57VGlja2V0T2JqZWN0fS0+VGlja2V0UmVzcG9uc2libGVTZXQoCiAgICAgICAgICAgICAgICBUaWNrZXRJRCAgPT4gJFRpY2tldElELAogICAgICAgICAgICAgICAgTmV3VXNlcklEID0+ICRQYXJhbXtSZXNwb25zaWJsZUlEfSwKICAgICAgICAgICAgICAgIFVzZXJJRCAgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgICMgdGltZSBhY2NvdW50aW5nCiAgICAgICAgaWYgKCAkUGFyYW17VGltZVVuaXRzfSApIHsKICAgICAgICAgICAgJFNlbGYtPntUaWNrZXRPYmplY3R9LT5UaWNrZXRBY2NvdW50VGltZSgKICAgICAgICAgICAgICAgIFRpY2tldElEICA9PiAkVGlja2V0SUQsCiAgICAgICAgICAgICAgICBBcnRpY2xlSUQgPT4gJEFydGljbGVJRCwKICAgICAgICAgICAgICAgIFRpbWVVbml0ICA9PiAkUGFyYW17VGltZVVuaXRzfSwKICAgICAgICAgICAgICAgIFVzZXJJRCAgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgICMgc2hvdWxkIGkgc2V0IGFuIHVubG9jaz8KICAgICAgICBteSAlU3RhdGVEYXRhID0gJFNlbGYtPntTdGF0ZU9iamVjdH0tPlN0YXRlR2V0KCBJRCA9PiAkUGFyYW17U3RhdGVJRH0gKTsKICAgICAgICBpZiAoICRTdGF0ZURhdGF7VHlwZU5hbWV9ID1+IC9eY2xvc2UvaSApIHsKICAgICAgICAgICAgJFNlbGYtPntUaWNrZXRPYmplY3R9LT5UaWNrZXRMb2NrU2V0KAogICAgICAgICAgICAgICAgVGlja2V0SUQgPT4gJFRpY2tldElELAogICAgICAgICAgICAgICAgTG9jayAgICAgPT4gJ3VubG9jaycsCiAgICAgICAgICAgICAgICBVc2VySUQgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgICMgc2V0IHBlbmRpbmcgdGltZQogICAgICAgIGVsc2lmICggJFN0YXRlRGF0YXtUeXBlTmFtZX0gPX4gL15wZW5kaW5nL2kgKSB7CgogICAgICAgICAgICAjIHNldCBwZW5kaW5nIHRpbWUKICAgICAgICAgICAgJFNlbGYtPntUaWNrZXRPYmplY3R9LT5UaWNrZXRQZW5kaW5nVGltZVNldCgKICAgICAgICAgICAgICAgIFVzZXJJRCAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICAgICAgVGlja2V0SUQgPT4gJFRpY2tldElELAogICAgICAgICAgICAgICAgU3RyaW5nICAgPT4gJFBhcmFte1BlbmRpbmdEYXRlfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIGludCAkVGlja2V0SUQ7CiAgICB9CiAgICBlbHNlIHsKICAgICAgICAkU2VsZi0+e0xvZ09iamVjdH0tPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gJ0Vycm9yOiBubyBhcnRpY2xlIHdhcyBjcmVhdGVkISBQbGVhc2UgY29udGFjdCB0aGUgYWRtaW4nLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuOwogICAgfQp9CgpzdWIgX1RpY2tldENvbW1vbkFjdGlvbnMgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAkU2VsZi0+e0NvbmZpZ30KICAgICAgICA9ICRTZWxmLT57Q29uZmlnT2JqZWN0fS0+R2V0KCAnaVBob25lOjpGcm9udGVuZDo6QWdlbnRUaWNrZXQnIC4gJFBhcmFte0FjdGlvbn0gKTsKCiAgICBteSAlU3RhdGVEYXRhID0gKCk7CgogICAgaWYgKCAkUGFyYW17U3RhdGVJRH0gKSB7CiAgICAgICAgJVN0YXRlRGF0YSA9ICRTZWxmLT57VGlja2V0T2JqZWN0fS0+e1N0YXRlT2JqZWN0fS0+U3RhdGVHZXQoCiAgICAgICAgICAgIElEID0+ICRQYXJhbXtTdGF0ZUlEfSwKICAgICAgICApOwogICAgfQoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBpZiAoICEkUGFyYW17VGlja2V0SUR9ICkgewogICAgICAgICRTZWxmLT57TG9nT2JqZWN0fS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAnTm8gVGlja2V0SUQgaXMgZ2l2ZW4hIFBsZWFzZSBjb250YWN0IHRoZSBhZG1pbi4nLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgICMgY2hlY2sgcGVybWlzc2lvbnMKICAgIG15ICRBY2Nlc3MgPSAkU2VsZi0+e1RpY2tldE9iamVjdH0tPlRpY2tldFBlcm1pc3Npb24oCiAgICAgICAgVHlwZSAgICAgPT4gJFNlbGYtPntDb25maWd9LT57UGVybWlzc2lvbn0sCiAgICAgICAgVGlja2V0SUQgPT4gJFBhcmFte1RpY2tldElEfSwKICAgICAgICBVc2VySUQgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICk7CgogICAgIyBlcnJvciBzY3JlZW4sIGRvbid0IHNob3cgdGlja2V0CiAgICBpZiAoICEkQWNjZXNzICkgewogICAgICAgICRTZWxmLT57TG9nT2JqZWN0fS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAiWW91IG5lZWQgJFNlbGYtPntDb25maWd9LT57UGVybWlzc2lvbn0gcGVybWlzc2lvbnMhIiwKICAgICAgICApOwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICBteSAlVGlja2V0ID0gJFNlbGYtPntUaWNrZXRPYmplY3R9LT5UaWNrZXRHZXQoIFRpY2tldElEID0+ICRQYXJhbXtUaWNrZXRJRH0gKTsKCiAgICAjIGdldCBsb2NrIHN0YXRlCiAgICBpZiAoICRTZWxmLT57Q29uZmlnfS0+e1JlcXVpcmVkTG9ja30gKSB7CiAgICAgICAgbXkgJExvY2tlZCA9ICRTZWxmLT57VGlja2V0T2JqZWN0fS0+VGlja2V0TG9ja0dldCggVGlja2V0SUQgPT4gJFBhcmFte1RpY2tldElEfSApOwoKICAgICAgICBpZiAoICEkTG9ja2VkICkgewogICAgICAgICAgICAkU2VsZi0+e1RpY2tldE9iamVjdH0tPlRpY2tldExvY2tTZXQoCiAgICAgICAgICAgICAgICBUaWNrZXRJRCA9PiAkUGFyYW17VGlja2V0SUR9LAogICAgICAgICAgICAgICAgTG9jayAgICAgPT4gJ2xvY2snLAogICAgICAgICAgICAgICAgVXNlcklEICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIG15ICRTdWNjZXNzID0gJFNlbGYtPntUaWNrZXRPYmplY3R9LT5UaWNrZXRPd25lclNldCgKICAgICAgICAgICAgICAgIFRpY2tldElEICA9PiAkUGFyYW17VGlja2V0SUR9LAogICAgICAgICAgICAgICAgVXNlcklEICAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICAgICAgTmV3VXNlcklEID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICApOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgbXkgJEFjY2Vzc09rID0gJFNlbGYtPntUaWNrZXRPYmplY3R9LT5Pd25lckNoZWNrKAogICAgICAgICAgICAgICAgVGlja2V0SUQgPT4gJFBhcmFte1RpY2tldElEfSwKICAgICAgICAgICAgICAgIE93bmVySUQgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICApOwogICAgICAgICAgICBpZiAoICEkQWNjZXNzT2sgKSB7CiAgICAgICAgICAgICAgICAkU2VsZi0+e0xvZ09iamVjdH0tPkxvZygKICAgICAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICdTb3JyeSwgeW91IG5lZWQgdG8gYmUgdGhlIG93bmVyIHRvIGRvIHRoaXMgYWN0aW9uISAnCiAgICAgICAgICAgICAgICAgICAgICAgIC4gJ1BsZWFzZSBjaGFuZ2UgdGhlIG93bmVyIGZpcnN0LicsCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgICMgdHJhbnNmb3JtIHBlbmRpbmcgdGltZSwgdGltZSBzdGFtcCBiYXNlZCBvbiB1c2VyIHRpbWUgem9uZQogICAgaWYgKCBJc1N0cmluZ1dpdGhEYXRhKCAkUGFyYW17UGVuZGluZ0RhdGV9ICkgKSB7CiAgICAgICAgJFBhcmFte1BlbmRpbmdEYXRlfSA9ICRTZWxmLT5fVHJhbnNmb3JtRGF0ZVNlbGVjdGlvbigKICAgICAgICAgICAgVGltZVN0YW1wID0+ICRQYXJhbXtQZW5kaW5nRGF0ZX0sCiAgICAgICAgKTsKICAgIH0KCiAgICBteSAkVXNlclRpbWVab25lID0gJFNlbGYtPntVc2VyVGltZVpvbmV9OwoKICAgICMgZ2V0IGR5bmFtaWMgZmllbGQgY29uZmlnIGZvciB0aGUgc2NyZWVuCiAgICAkU2VsZi0+e0R5bmFtaWNGaWVsZEZpbHRlcn0gPSAkU2VsZi0+e0NvbmZpZ30tPntEeW5hbWljRmllbGR9OwoKICAgICMgZ2V0IHRoZSBkeW5hbWljIGZpZWxkcyBmb3IgdGlja2V0IG9iamVjdAogICAgJFNlbGYtPntEeW5hbWljRmllbGR9ID0gJFNlbGYtPntEeW5hbWljRmllbGRPYmplY3R9LT5EeW5hbWljRmllbGRMaXN0R2V0KAogICAgICAgIFZhbGlkICAgICAgID0+IDEsCiAgICAgICAgT2JqZWN0VHlwZSAgPT4gWyAnVGlja2V0JywgJ0FydGljbGUnIF0sCiAgICAgICAgRmllbGRGaWx0ZXIgPT4gJFNlbGYtPntEeW5hbWljRmllbGRGaWx0ZXJ9IHx8IHt9LAogICAgKTsKCiAgICBteSAlRHluYW1pY0ZpZWxkVmFsdWVzOwoKICAgICMgY3ljbGUgdHJvdWdoIHRoZSBhY3RpdmF0ZWQgRHluYW1pYyBGaWVsZHMgZm9yIHRoaXMgc2NyZWVuCiAgICBEWU5BTUlDRklFTEQ6CiAgICBmb3IgbXkgJER5bmFtaWNGaWVsZENvbmZpZyAoIEB7ICRTZWxmLT57RHluYW1pY0ZpZWxkfSB9ICkgewogICAgICAgIG5leHQgRFlOQU1JQ0ZJRUxEIGlmICFJc0hhc2hSZWZXaXRoRGF0YSgkRHluYW1pY0ZpZWxkQ29uZmlnKTsKICAgICAgICBuZXh0IERZTkFNSUNGSUVMRCBpZiAhSXNIYXNoUmVmV2l0aERhdGEoICREeW5hbWljRmllbGRDb25maWctPntDb25maWd9ICk7CiAgICAgICAgbmV4dCBEWU5BTUlDRklFTEQgaWYgISREeW5hbWljRmllbGRDb25maWctPntOYW1lfTsKCiAgICAgICAgIyBza2lwIGFsbCBkeW5hbWljIGZpZWxkcyB0aGF0IGFyZSBub3QgZGVzaWduZWQgcmVuZGVyIGluIGlQaG9uZSBBcHAKICAgICAgICBteSAkSXNJUGhvbmVDYXBhYmxlID0gJFNlbGYtPntCYWNrZW5kT2JqZWN0fS0+SGFzQmVoYXZpb3IoCiAgICAgICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyA9PiAkRHluYW1pY0ZpZWxkQ29uZmlnLAogICAgICAgICAgICBCZWhhdmlvciAgICAgICAgICAgPT4gJ0lzSVBob25lQ2FwYWJsZScsCiAgICAgICAgKTsKICAgICAgICBuZXh0IERZTkFNSUNGSUVMRCBpZiAhJElzSVBob25lQ2FwYWJsZTsKCiAgICAgICAgIyBleHRyYWN0IHRoZSBkeW5hbWljIGZpZWxkIHZhbHVlIGZvcm0gcGFyYW1ldGVycwogICAgICAgICREeW5hbWljRmllbGRWYWx1ZXN7ICREeW5hbWljRmllbGRDb25maWctPntOYW1lfSB9CiAgICAgICAgICAgID0gJFNlbGYtPntCYWNrZW5kT2JqZWN0fS0+SVBob25lRmllbGRWYWx1ZUdldCgKICAgICAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnID0+ICREeW5hbWljRmllbGRDb25maWcsCiAgICAgICAgICAgIFRyYW5zZm9ybURhdGVzICAgICA9PiAxLAogICAgICAgICAgICBVc2VyVGltZVpvbmUgICAgICAgPT4gJFVzZXJUaW1lWm9uZSB8fCAwLAogICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgICAgICk7CgogICAgICAgICMgcGVyZm9ybSB2YWxpZGF0aW9uIG9mIHRoZSBkYXRhCiAgICAgICAgbXkgJFZhbGlkYXRpb25SZXN1bHQgPSAkU2VsZi0+e0JhY2tlbmRPYmplY3R9LT5JUGhvbmVGaWVsZFZhbHVlVmFsaWRhdGUoCiAgICAgICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyA9PiAkRHluYW1pY0ZpZWxkQ29uZmlnLAogICAgICAgICAgICBWYWx1ZSAgICAgICAgICAgICAgPT4gJER5bmFtaWNGaWVsZFZhbHVlc3sgJER5bmFtaWNGaWVsZENvbmZpZy0+e05hbWV9IH0sCiAgICAgICAgICAgIE1hbmRhdG9yeSA9PiAkU2VsZi0+e0NvbmZpZ30tPntEeW5hbWljRmllbGR9LT57ICREeW5hbWljRmllbGRDb25maWctPntOYW1lfSB9ID09IDIsCiAgICAgICAgKTsKCiAgICAgICAgaWYgKCAhSXNIYXNoUmVmV2l0aERhdGEoJFZhbGlkYXRpb25SZXN1bHQpICkgewogICAgICAgICAgICAkU2VsZi0+e0xvZ09iamVjdH0tPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiQ291bGQgbm90IHBlcmZvcm0gdmFsaWRhdGlvbiBvbiBmaWVsZCAkRHluYW1pY0ZpZWxkQ29uZmlnLT57TGFiZWx9ISIsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CgogICAgICAgICMgcHJvcGFnYXRlIHZhbGlkYXRpb24gZXJyb3IKICAgICAgICBpZiAoICRWYWxpZGF0aW9uUmVzdWx0LT57U2VydmVyRXJyb3J9ICkgewoKICAgICAgICAgICAgbXkgJEVycm9yTWVzc2FnZSA9ICRWYWxpZGF0aW9uUmVzdWx0LT57RXJyb3JNZXNzYWdlfQogICAgICAgICAgICAgICAgfHwgIkR5bmFtaWMgZmllbGQgJER5bmFtaWNGaWVsZENvbmZpZy0+e0xhYmVsfSBpbnZhbGlkIjsKCiAgICAgICAgICAgICRTZWxmLT57TG9nT2JqZWN0fS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICRFcnJvck1lc3NhZ2UsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgIyByZXdyYXAgYm9keSBpZiBubyByaWNoIHRleHQgaXMgdXNlZAogICAgaWYgKCAkUGFyYW17Qm9keX0gKSB7CiAgICAgICAgbXkgJFNpemUgPSAkU2VsZi0+e0NvbmZpZ09iamVjdH0tPkdldCgnVGlja2V0OjpGcm9udGVuZDo6VGV4dEFyZWFOb3RlJykgfHwgNzA7CiAgICAgICAgJFBhcmFte0JvZHl9ID1+IHMvKF4+Lit8Lns0LCRTaXplfSkoPzpcc3xceikvJDFcbi9nbTsKICAgIH0KCiAgICAjIGNoZWNrIHBlbmRpbmcgZGF0ZQogICAgaWYgKCAkU3RhdGVEYXRhe1R5cGVOYW1lfSAmJiAkU3RhdGVEYXRhe1R5cGVOYW1lfSA9fiAvXnBlbmRpbmcvaSApIHsKICAgICAgICBpZiAoICEkU2VsZi0+e1RpbWVPYmplY3R9LT5UaW1lU3RhbXAyU3lzdGVtVGltZSggU3RyaW5nID0+ICRQYXJhbXtQZW5kaW5nRGF0ZX0gKSApIHsKICAgICAgICAgICAgJFNlbGYtPntMb2dPYmplY3R9LT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gJ0RhdGUgaW52YWxpZCcsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICAgICAgaWYgKAogICAgICAgICAgICAkU2VsZi0+e1RpbWVPYmplY3R9LT5UaW1lU3RhbXAyU3lzdGVtVGltZSggU3RyaW5nID0+ICRQYXJhbXtQZW5kaW5nRGF0ZX0gKQogICAgICAgICAgICA8ICRTZWxmLT57VGltZU9iamVjdH0tPlN5c3RlbVRpbWUoKQogICAgICAgICAgICApCiAgICAgICAgewogICAgICAgICAgICAkU2VsZi0+e0xvZ09iamVjdH0tPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAnRGF0ZSBpbnZhbGlkJywKICAgICAgICAgICAgKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICBpZiAoICRTZWxmLT57Q29uZmlnfS0+e05vdGV9ICkgewoKICAgICAgICAjIGNoZWNrIHN1YmplY3QKICAgICAgICBpZiAoICEkUGFyYW17U3ViamVjdH0gKSB7CiAgICAgICAgICAgICRTZWxmLT57TG9nT2JqZWN0fS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICdTdWJqZWN0IEludmFsaWQ6IHRoZSBTdWJqZWN0IGlzIGVtcHR5IScsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CgogICAgICAgICMgY2hlY2sgYm9keQogICAgICAgIGlmICggISRQYXJhbXtCb2R5fSApIHsKICAgICAgICAgICAgJFNlbGYtPntMb2dPYmplY3R9LT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gJ0JvZHkgSW52YWxpZDogdGhlIEJvZHkgaXMgZW1wdHkhJywKICAgICAgICAgICAgKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICAjY2hlY2sgaWYgVGl0bGUKICAgIGlmICggISRQYXJhbXtUaXRsZX0gKSB7CiAgICAgICAgbXkgJVRpY2tldERhdGEgPSAkU2VsZi0+e1RpY2tldE9iamVjdH0tPlRpY2tldEdldCgKICAgICAgICAgICAgVGlja2V0SUQgPT4gJFBhcmFte1RpY2tldElEfSwKICAgICAgICAgICAgVXNlcklEICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgKTsKCiAgICAgICAgJFBhcmFte1RpdGxlfSA9ICRUaWNrZXREYXRhe1RpdGxlfTsKICAgIH0KCiAgICAjIHNldCBuZXcgdGl0bGUKICAgIGlmICggJFNlbGYtPntDb25maWd9LT57VGl0bGV9ICkgewogICAgICAgIGlmICggZGVmaW5lZCAkUGFyYW17VGl0bGV9ICkgewogICAgICAgICAgICAkU2VsZi0+e1RpY2tldE9iamVjdH0tPlRpY2tldFRpdGxlVXBkYXRlKAogICAgICAgICAgICAgICAgVGl0bGUgICAgPT4gJFBhcmFte1RpdGxlfSwKICAgICAgICAgICAgICAgIFRpY2tldElEID0+ICRQYXJhbXtUaWNrZXRJRH0sCiAgICAgICAgICAgICAgICBVc2VySUQgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICB9CgogICAgIyBzZXQgbmV3IHR5cGUKICAgIGlmICggJFNlbGYtPntDb25maWdPYmplY3R9LT5HZXQoJ1RpY2tldDo6VHlwZScpICYmICRTZWxmLT57Q29uZmlnfS0+e1RpY2tldFR5cGV9ICkgewogICAgICAgIGlmICggJFBhcmFte1R5cGVJRH0gKSB7CiAgICAgICAgICAgICRTZWxmLT57VGlja2V0T2JqZWN0fS0+VGlja2V0VHlwZVNldCgKICAgICAgICAgICAgICAgIFR5cGVJRCAgID0+ICRQYXJhbXtUeXBlSUR9LAogICAgICAgICAgICAgICAgVGlja2V0SUQgPT4gJFBhcmFte1RpY2tldElEfSwKICAgICAgICAgICAgICAgIFVzZXJJRCAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICApOwogICAgICAgIH0KICAgIH0KCiAgICAjIHNldCBuZXcgc2VydmljZQogICAgaWYgKCAkU2VsZi0+e0NvbmZpZ09iamVjdH0tPkdldCgnVGlja2V0OjpTZXJ2aWNlJykgJiYgJFNlbGYtPntDb25maWd9LT57U2VydmljZX0gKSB7CiAgICAgICAgaWYgKCBkZWZpbmVkICRQYXJhbXtTZXJ2aWNlSUR9ICkgewogICAgICAgICAgICAkU2VsZi0+e1RpY2tldE9iamVjdH0tPlRpY2tldFNlcnZpY2VTZXQoCiAgICAgICAgICAgICAgICBTZXJ2aWNlSUQgICAgICA9PiAkUGFyYW17U2VydmljZUlEfSwKICAgICAgICAgICAgICAgIFRpY2tldElEICAgICAgID0+ICRQYXJhbXtUaWNrZXRJRH0sCiAgICAgICAgICAgICAgICBDdXN0b21lclVzZXJJRCA9PiAkVGlja2V0e0N1c3RvbWVyVXNlcklEfSwKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgICAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICApOwogICAgICAgIH0KICAgICAgICBpZiAoIGRlZmluZWQgJFBhcmFte1NMQUlEfSApIHsKICAgICAgICAgICAgJFNlbGYtPntUaWNrZXRPYmplY3R9LT5UaWNrZXRTTEFTZXQoCiAgICAgICAgICAgICAgICBTTEFJRCAgICA9PiAkUGFyYW17U0xBSUR9LAogICAgICAgICAgICAgICAgVGlja2V0SUQgPT4gJFBhcmFte1RpY2tldElEfSwKICAgICAgICAgICAgICAgIFVzZXJJRCAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICApOwogICAgICAgIH0KICAgIH0KCiAgICAjIHNldCBuZXcgb3duZXIKICAgIG15IEBOb3RpZnlEb25lOwogICAgaWYgKCAkU2VsZi0+e0NvbmZpZ30tPntPd25lcn0gKSB7CiAgICAgICAgbXkgJEJvZHlUZXh0ID0gJFBhcmFte0JvZHl9IHx8ICcnOwogICAgICAgIGlmICggJFBhcmFte093bmVySUR9ICkgewogICAgICAgICAgICAkU2VsZi0+e1RpY2tldE9iamVjdH0tPlRpY2tldExvY2tTZXQoCiAgICAgICAgICAgICAgICBUaWNrZXRJRCA9PiAkUGFyYW17VGlja2V0SUR9LAogICAgICAgICAgICAgICAgTG9jayAgICAgPT4gJ2xvY2snLAogICAgICAgICAgICAgICAgVXNlcklEICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIG15ICRTdWNjZXNzID0gJFNlbGYtPntUaWNrZXRPYmplY3R9LT5UaWNrZXRPd25lclNldCgKICAgICAgICAgICAgICAgIFRpY2tldElEICA9PiAkUGFyYW17VGlja2V0SUR9LAogICAgICAgICAgICAgICAgVXNlcklEICAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICAgICAgTmV3VXNlcklEID0+ICRQYXJhbXtPd25lcklEfSwKICAgICAgICAgICAgICAgIENvbW1lbnQgICA9PiAkQm9keVRleHQsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAjIHJlbWVtYmVyIHRvIG5vdCBub3RpZnkgb3duZXIgdHdpY2UKICAgICAgICAgICAgaWYgKCAkU3VjY2VzcyAmJiAkU3VjY2VzcyBlcSAxICkgewogICAgICAgICAgICAgICAgcHVzaCBATm90aWZ5RG9uZSwgJFBhcmFte093bmVySUR9OwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgICMgc2V0IG5ldyByZXNwb25zaWJsZQogICAgaWYgKCAkU2VsZi0+e0NvbmZpZ30tPntSZXNwb25zaWJsZX0gKSB7CiAgICAgICAgaWYgKCAkUGFyYW17UmVzcG9uc2libGVJRH0gKSB7CiAgICAgICAgICAgIG15ICRCb2R5VGV4dCA9ICRQYXJhbXtCb2R5fSB8fCAnJzsKICAgICAgICAgICAgbXkgJFN1Y2Nlc3MgPSAkU2VsZi0+e1RpY2tldE9iamVjdH0tPlRpY2tldFJlc3BvbnNpYmxlU2V0KAogICAgICAgICAgICAgICAgVGlja2V0SUQgID0+ICRQYXJhbXtUaWNrZXRJRH0sCiAgICAgICAgICAgICAgICBVc2VySUQgICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgICAgICBOZXdVc2VySUQgPT4gJFBhcmFte1Jlc3BvbnNpYmxlSUR9LAogICAgICAgICAgICAgICAgQ29tbWVudCAgID0+ICRCb2R5VGV4dCwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICMgcmVtZW1iZXIgdG8gbm90IG5vdGlmeSByZXNwb25zaWJsZSB0d2ljZQogICAgICAgICAgICBpZiAoICRTdWNjZXNzICYmICRTdWNjZXNzIGVxIDEgKSB7CiAgICAgICAgICAgICAgICBwdXNoIEBOb3RpZnlEb25lLCAkUGFyYW17UmVzcG9uc2libGVJRH07CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgIyBhZGQgbm90ZQogICAgbXkgJEFydGljbGVJRCA9ICcnOwogICAgaWYgKCAkU2VsZi0+e0NvbmZpZ30tPntOb3RlfSB8fCAkUGFyYW17RGVmYXVsdHN9ICkgewogICAgICAgIG15ICRNaW1lVHlwZSA9ICd0ZXh0L3BsYWluJzsKCiAgICAgICAgbXkgJVVzZXIgPSAkU2VsZi0+e1VzZXJPYmplY3R9LT5HZXRVc2VyRGF0YSgKICAgICAgICAgICAgVXNlcklEID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICk7CgogICAgICAgIG15ICRGcm9tID0gIiRVc2Vye1VzZXJGaXJzdG5hbWV9ICRVc2Vye1VzZXJMYXN0bmFtZX0gPCRVc2Vye1VzZXJFbWFpbH0+IjsKCiAgICAgICAgJEFydGljbGVJRCA9ICRTZWxmLT57VGlja2V0T2JqZWN0fS0+QXJ0aWNsZUNyZWF0ZSgKICAgICAgICAgICAgVGlja2V0SUQgICA9PiAkUGFyYW17VGlja2V0SUR9LAogICAgICAgICAgICBTZW5kZXJUeXBlID0+ICdhZ2VudCcsCiAgICAgICAgICAgIEZyb20gICAgICAgPT4gJEZyb20sCiAgICAgICAgICAgIE1pbWVUeXBlICAgPT4gJE1pbWVUeXBlLAoKICAgICAgICAgICAgIyBpcGhvbmUgbXVzdCBzZW5kIGluZm8gaW4gY3VycmVudCBjaGFyc2V0CiAgICAgICAgICAgIENoYXJzZXQgICAgICAgID0+ICRTZWxmLT57Q29uZmlnT2JqZWN0fS0+R2V0KCdEZWZhdWx0Q2hhcnNldCcpLAogICAgICAgICAgICBVc2VySUQgICAgICAgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgSGlzdG9yeVR5cGUgICAgPT4gJFNlbGYtPntDb25maWd9LT57SGlzdG9yeVR5cGV9LAogICAgICAgICAgICBIaXN0b3J5Q29tbWVudCA9PiAkU2VsZi0+e0NvbmZpZ30tPntIaXN0b3J5Q29tbWVudH0sCgogICAgICAgICAgICAjICAgICAgICAgICAgICAgIEZvcmNlTm90aWZpY2F0aW9uVG9Vc2VySUQgICAgICAgPT4gXEBOb3RpZnlVc2VySURzLAogICAgICAgICAgICBFeGNsdWRlTXV0ZU5vdGlmaWNhdGlvblRvVXNlcklEID0+IFxATm90aWZ5RG9uZSwKICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICk7CgogICAgICAgIGlmICggISRBcnRpY2xlSUQgKSB7CiAgICAgICAgICAgICRTZWxmLT57TG9nT2JqZWN0fS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICdFcnJvcjogbm8gYXJ0aWNsZSB3YXMgY3JlYXRlZCEgUGxlYXNlIGNvbnRhY3QgdGhlIGFkbWluLicsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CgogICAgICAgICMgdGltZSBhY2NvdW50aW5nCiAgICAgICAgaWYgKCAkUGFyYW17VGltZVVuaXRzfSApIHsKICAgICAgICAgICAgJFNlbGYtPntUaWNrZXRPYmplY3R9LT5UaWNrZXRBY2NvdW50VGltZSgKICAgICAgICAgICAgICAgIFRpY2tldElEICA9PiAkUGFyYW17VGlja2V0SUR9LAogICAgICAgICAgICAgICAgQXJ0aWNsZUlEID0+ICRBcnRpY2xlSUQsCiAgICAgICAgICAgICAgICBUaW1lVW5pdCAgPT4gJFBhcmFte1RpbWVVbml0c30sCiAgICAgICAgICAgICAgICBVc2VySUQgICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICAjIHNldCBkeW5hbWljIGZpZWxkcwogICAgICAgICMgY3ljbGUgdHJvdWdoIHRoZSBhY3RpdmF0ZWQgRHluYW1pYyBGaWVsZHMgZm9yIHRoaXMgc2NyZWVuCiAgICAgICAgRFlOQU1JQ0ZJRUxEOgogICAgICAgIGZvciBteSAkRHluYW1pY0ZpZWxkQ29uZmlnICggQHsgJFNlbGYtPntEeW5hbWljRmllbGR9IH0gKSB7CiAgICAgICAgICAgIG5leHQgRFlOQU1JQ0ZJRUxEIGlmICFJc0hhc2hSZWZXaXRoRGF0YSgkRHluYW1pY0ZpZWxkQ29uZmlnKTsKCiAgICAgICAgICAgICMgc2V0IHRoZSBvYmplY3QgSUQgKFRpY2tldElEIG9yIEFydGljbGVJRCkgZGVwZW5kaW5nIG9uIHRoZSBmaWVsZCBjb25maWdyYXRpb24KICAgICAgICAgICAgbXkgJE9iamVjdElECiAgICAgICAgICAgICAgICA9ICREeW5hbWljRmllbGRDb25maWctPntPYmplY3RUeXBlfSBlcSAnQXJ0aWNsZScgPyAkQXJ0aWNsZUlEIDogJFBhcmFte1RpY2tldElEfTsKCiAgICAgICAgICAgICMgc2V0IHRoZSB2YWx1ZQogICAgICAgICAgICBteSAkU3VjY2VzcyA9ICRTZWxmLT57QmFja2VuZE9iamVjdH0tPlZhbHVlU2V0KAogICAgICAgICAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnID0+ICREeW5hbWljRmllbGRDb25maWcsCiAgICAgICAgICAgICAgICBPYmplY3RJRCAgICAgICAgICAgPT4gJE9iamVjdElELAogICAgICAgICAgICAgICAgVmFsdWUgICAgICAgICAgICAgID0+ICREeW5hbWljRmllbGRWYWx1ZXN7ICREeW5hbWljRmllbGRDb25maWctPntOYW1lfSB9LAogICAgICAgICAgICAgICAgVXNlcklEICAgICAgICAgICAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgIyBzZXQgcHJpb3JpdHkKICAgICAgICBpZiAoICRTZWxmLT57Q29uZmlnfS0+e1ByaW9yaXR5fSAmJiAkUGFyYW17UHJpb3JpdHlJRH0gKSB7CiAgICAgICAgICAgICRTZWxmLT57VGlja2V0T2JqZWN0fS0+VGlja2V0UHJpb3JpdHlTZXQoCiAgICAgICAgICAgICAgICBUaWNrZXRJRCAgID0+ICRQYXJhbXtUaWNrZXRJRH0sCiAgICAgICAgICAgICAgICBQcmlvcml0eUlEID0+ICRQYXJhbXtQcmlvcml0eUlEfSwKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICAjIHNldCBzdGF0ZQogICAgICAgIGlmICggJFNlbGYtPntDb25maWd9LT57U3RhdGV9ICYmICRQYXJhbXtTdGF0ZUlEfSApIHsKICAgICAgICAgICAgJFNlbGYtPntUaWNrZXRPYmplY3R9LT5UaWNrZXRTdGF0ZVNldCgKICAgICAgICAgICAgICAgIFRpY2tldElEID0+ICRQYXJhbXtUaWNrZXRJRH0sCiAgICAgICAgICAgICAgICBTdGF0ZUlEICA9PiAkUGFyYW17U3RhdGVJRH0sCiAgICAgICAgICAgICAgICBVc2VySUQgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICMgdW5sb2NrIHRoZSB0aWNrZXQgYWZ0ZXIgY2xvc2UKICAgICAgICAgICAgbXkgJVN0YXRlRGF0YSA9ICRTZWxmLT57VGlja2V0T2JqZWN0fS0+e1N0YXRlT2JqZWN0fS0+U3RhdGVHZXQoCiAgICAgICAgICAgICAgICBJRCA9PiAkUGFyYW17U3RhdGVJRH0sCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAjIHNldCB1bmxvY2sgb24gY2xvc2Ugc3RhdGUKICAgICAgICAgICAgaWYgKCAkU3RhdGVEYXRhe1R5cGVOYW1lfSA9fiAvXmNsb3NlL2kgKSB7CiAgICAgICAgICAgICAgICAkU2VsZi0+e1RpY2tldE9iamVjdH0tPlRpY2tldExvY2tTZXQoCiAgICAgICAgICAgICAgICAgICAgVGlja2V0SUQgPT4gJFBhcmFte1RpY2tldElEfSwKICAgICAgICAgICAgICAgICAgICBMb2NrICAgICA9PiAndW5sb2NrJywKICAgICAgICAgICAgICAgICAgICBVc2VySUQgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgc2V0IHBlbmRpbmcgdGltZSBvbiBwZW5kaWcgc3RhdGUKICAgICAgICAgICAgZWxzaWYgKCAkU3RhdGVEYXRhe1R5cGVOYW1lfSA9fiAvXnBlbmRpbmcvaSApIHsKCiAgICAgICAgICAgICAgICAjIHNldCBwZW5kaW5nIHRpbWUKICAgICAgICAgICAgICAgICRTZWxmLT57VGlja2V0T2JqZWN0fS0+VGlja2V0UGVuZGluZ1RpbWVTZXQoCiAgICAgICAgICAgICAgICAgICAgVXNlcklEICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgICAgICAgICAgVGlja2V0SUQgPT4gJFBhcmFte1RpY2tldElEfSwKICAgICAgICAgICAgICAgICAgICBTdHJpbmcgICA9PiAkUGFyYW17UGVuZGluZ0RhdGV9LAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICBlbHNlIHsKCiAgICAgICAgIyBmaWxsdXAgY29uZmlndXJlZCBkZWZhdWx0IHZhcnMKICAgICAgICBpZiAoICFkZWZpbmVkICRQYXJhbXtCb2R5fSAmJiAkU2VsZi0+e0NvbmZpZ30tPntCb2R5fSApIHsKICAgICAgICAgICAgJFBhcmFte0JvZHl9ID0gJFNlbGYtPntDb25maWd9LT57Qm9keX07CiAgICAgICAgfQogICAgICAgIGlmICggIWRlZmluZWQgJFBhcmFte1N1YmplY3R9ICYmICRTZWxmLT57Q29uZmlnfS0+e1N1YmplY3R9ICkgewogICAgICAgICAgICAkUGFyYW17U3ViamVjdH0gPSAkU2VsZi0+e0NvbmZpZ30tPntTdWJqZWN0fSw7CiAgICAgICAgfQoKICAgICAgICBteSAkUmVzdWx0ID0gJFNlbGYtPl9UaWNrZXRDb21tb25BY3Rpb25zKAogICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgICAgIERlZmF1bHRzID0+IDEsCiAgICAgICAgKTsKICAgICAgICByZXR1cm4gJFJlc3VsdDsKICAgIH0KICAgIHJldHVybiAkQXJ0aWNsZUlEOwp9CgpzdWIgX1RpY2tldENvbXBvc2UgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAkU2VsZi0+e0NvbmZpZ30KICAgICAgICA9ICRTZWxmLT57Q29uZmlnT2JqZWN0fS0+R2V0KCdpUGhvbmU6OkZyb250ZW5kOjpBZ2VudFRpY2tldENvbXBvc2UnKTsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgaWYgKCAhJFBhcmFte1RpY2tldElEfSApIHsKICAgICAgICAkU2VsZi0+e0xvZ09iamVjdH0tPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gJ05vIFRpY2tldElEIGlzIGdpdmVuISBQbGVhc2UgY29udGFjdCB0aGUgYWRtaW4uJywKICAgICAgICApOwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICAjIGNoZWNrIHBlcm1pc3Npb25zCiAgICBteSAkQWNjZXNzID0gJFNlbGYtPntUaWNrZXRPYmplY3R9LT5UaWNrZXRQZXJtaXNzaW9uKAogICAgICAgIFR5cGUgICAgID0+ICRTZWxmLT57Q29uZmlnfS0+e1Blcm1pc3Npb259LAogICAgICAgIFRpY2tldElEID0+ICRQYXJhbXtUaWNrZXRJRH0sCiAgICAgICAgVXNlcklEICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICApOwoKICAgICMgZXJyb3Igc2NyZWVuLCBkb24ndCBzaG93IHRpY2tldAogICAgaWYgKCAhJEFjY2VzcyApIHsKICAgICAgICAkU2VsZi0+e0xvZ09iamVjdH0tPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gIllvdSBuZWVkICRTZWxmLT57Q29uZmlnfS0+e1Blcm1pc3Npb259IHBlcm1pc3Npb25zISIsCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CiAgICBteSAlVGlja2V0ID0gJFNlbGYtPntUaWNrZXRPYmplY3R9LT5UaWNrZXRHZXQoIFRpY2tldElEID0+ICRQYXJhbXtUaWNrZXRJRH0gKTsKCiAgICAjIGdldCBsb2NrIHN0YXRlCiAgICBpZiAoICRTZWxmLT57Q29uZmlnfS0+e1JlcXVpcmVkTG9ja30gKSB7CiAgICAgICAgbXkgJExvY2tlZCA9ICRTZWxmLT57VGlja2V0T2JqZWN0fS0+VGlja2V0TG9ja0dldCggVGlja2V0SUQgPT4gJFBhcmFte1RpY2tldElEfSApOwogICAgICAgIGlmICggISRMb2NrZWQgKSB7CiAgICAgICAgICAgICRTZWxmLT57VGlja2V0T2JqZWN0fS0+VGlja2V0TG9ja1NldCgKICAgICAgICAgICAgICAgIFRpY2tldElEID0+ICRQYXJhbXtUaWNrZXRJRH0sCiAgICAgICAgICAgICAgICBMb2NrICAgICA9PiAnbG9jaycsCiAgICAgICAgICAgICAgICBVc2VySUQgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIG15ICRTdWNjZXNzID0gJFNlbGYtPntUaWNrZXRPYmplY3R9LT5UaWNrZXRPd25lclNldCgKICAgICAgICAgICAgICAgIFRpY2tldElEICA9PiAkUGFyYW17VGlja2V0SUR9LAogICAgICAgICAgICAgICAgVXNlcklEICAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICAgICAgTmV3VXNlcklEID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICApOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgbXkgJEFjY2Vzc09rID0gJFNlbGYtPntUaWNrZXRPYmplY3R9LT5Pd25lckNoZWNrKAogICAgICAgICAgICAgICAgVGlja2V0SUQgPT4gJFBhcmFte1RpY2tldElEfSwKICAgICAgICAgICAgICAgIE93bmVySUQgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICApOwogICAgICAgICAgICBpZiAoICEkQWNjZXNzT2sgKSB7CiAgICAgICAgICAgICAgICAkU2VsZi0+e0xvZ09iamVjdH0tPkxvZygKICAgICAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJTb3JyeSwgeW91IG5lZWQgdG8gYmUgdGhlIG93bmVyIHRvIGRvIHRoaXMgYWN0aW9uISAiCiAgICAgICAgICAgICAgICAgICAgICAgIC4gIlBsZWFzZSBjaGFuZ2UgdGhlIG93bmVyIGZpcnN0LiIsCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgICMgdHJhbnNmb3JtIHBlbmRpbmcgdGltZSwgdGltZSBzdGFtcCBiYXNlZCBvbiB1c2VyIHRpbWUgem9uZQogICAgaWYgKCBJc1N0cmluZ1dpdGhEYXRhKCAkUGFyYW17UGVuZGluZ0RhdGV9ICkgKSB7CiAgICAgICAgJFBhcmFte1BlbmRpbmdEYXRlfSA9ICRTZWxmLT5fVHJhbnNmb3JtRGF0ZVNlbGVjdGlvbigKICAgICAgICAgICAgVGltZVN0YW1wID0+ICRQYXJhbXtQZW5kaW5nRGF0ZX0sCiAgICAgICAgKTsKICAgIH0KCiAgICBteSAkVXNlclRpbWVab25lID0gJFNlbGYtPntVc2VyVGltZVpvbmV9OwoKICAgICMgZ2V0IGR5bmFtaWMgZmllbGQgY29uZmlnIGZvciB0aGUgc2NyZWVuCiAgICAkU2VsZi0+e0R5bmFtaWNGaWVsZEZpbHRlcn0gPSAkU2VsZi0+e0NvbmZpZ30tPntEeW5hbWljRmllbGR9OwoKICAgICMgZ2V0IHRoZSBkeW5hbWljIGZpZWxkcyBmb3IgdGlja2V0IG9iamVjdAogICAgJFNlbGYtPntEeW5hbWljRmllbGR9ID0gJFNlbGYtPntEeW5hbWljRmllbGRPYmplY3R9LT5EeW5hbWljRmllbGRMaXN0R2V0KAogICAgICAgIFZhbGlkICAgICAgID0+IDEsCiAgICAgICAgT2JqZWN0VHlwZSAgPT4gWyAnVGlja2V0JywgJ0FydGljbGUnIF0sCiAgICAgICAgRmllbGRGaWx0ZXIgPT4gJFNlbGYtPntEeW5hbWljRmllbGRGaWx0ZXJ9IHx8IHt9LAogICAgKTsKCiAgICBteSAlRHluYW1pY0ZpZWxkVmFsdWVzOwoKICAgICMgY3ljbGUgdHJvdWdoIHRoZSBhY3RpdmF0ZWQgRHluYW1pYyBGaWVsZHMgZm9yIHRoaXMgc2NyZWVuCiAgICBEWU5BTUlDRklFTEQ6CiAgICBmb3IgbXkgJER5bmFtaWNGaWVsZENvbmZpZyAoIEB7ICRTZWxmLT57RHluYW1pY0ZpZWxkfSB9ICkgewogICAgICAgIG5leHQgRFlOQU1JQ0ZJRUxEIGlmICFJc0hhc2hSZWZXaXRoRGF0YSgkRHluYW1pY0ZpZWxkQ29uZmlnKTsKICAgICAgICBuZXh0IERZTkFNSUNGSUVMRCBpZiAhSXNIYXNoUmVmV2l0aERhdGEoICREeW5hbWljRmllbGRDb25maWctPntDb25maWd9ICk7CiAgICAgICAgbmV4dCBEWU5BTUlDRklFTEQgaWYgISREeW5hbWljRmllbGRDb25maWctPntOYW1lfTsKCiAgICAgICAgbmV4dCBEWU5BTUlDRklFTEQgaWYgISRTZWxmLT57QmFja2VuZE9iamVjdH0tPklzSVBob25lQ2FwYWJsZSgKICAgICAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnID0+ICREeW5hbWljRmllbGRDb25maWcsCiAgICAgICAgKTsKCiAgICAgICAgIyBleHRyYWN0IHRoZSBkeW5hbWljIGZpZWxkIHZhbHVlIGZvcm0gcGFyYW1ldGVycwogICAgICAgICREeW5hbWljRmllbGRWYWx1ZXN7ICREeW5hbWljRmllbGRDb25maWctPntOYW1lfSB9CiAgICAgICAgICAgID0gJFNlbGYtPntCYWNrZW5kT2JqZWN0fS0+SVBob25lRmllbGRWYWx1ZUdldCgKICAgICAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnID0+ICREeW5hbWljRmllbGRDb25maWcsCiAgICAgICAgICAgIFRyYW5zZm9ybURhdGVzICAgICA9PiAxLAogICAgICAgICAgICBVc2VyVGltZVpvbmUgICAgICAgPT4gJFVzZXJUaW1lWm9uZSB8fCAwLAogICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgICAgICk7CgogICAgICAgICMgcGVyZm9ybSB2YWxpZGF0aW9uIG9mIHRoZSBkYXRhCiAgICAgICAgbXkgJFZhbGlkYXRpb25SZXN1bHQgPSAkU2VsZi0+e0JhY2tlbmRPYmplY3R9LT5JUGhvbmVGaWVsZFZhbHVlVmFsaWRhdGUoCiAgICAgICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyA9PiAkRHluYW1pY0ZpZWxkQ29uZmlnLAogICAgICAgICAgICBWYWx1ZSAgICAgICAgICAgICAgPT4gJER5bmFtaWNGaWVsZFZhbHVlc3sgJER5bmFtaWNGaWVsZENvbmZpZy0+e05hbWV9IH0sCiAgICAgICAgICAgIE1hbmRhdG9yeSA9PiAkU2VsZi0+e0NvbmZpZ30tPntEeW5hbWljRmllbGR9LT57ICREeW5hbWljRmllbGRDb25maWctPntOYW1lfSB9ID09IDIsCiAgICAgICAgKTsKCiAgICAgICAgaWYgKCAhSXNIYXNoUmVmV2l0aERhdGEoJFZhbGlkYXRpb25SZXN1bHQpICkgewogICAgICAgICAgICAkU2VsZi0+e0xvZ09iamVjdH0tPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiQ291bGQgbm90IHBlcmZvcm0gdmFsaWRhdGlvbiBvbiBmaWVsZCAkRHluYW1pY0ZpZWxkQ29uZmlnLT57TGFiZWx9ISIsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CgogICAgICAgICMgcHJvcGFnYXRlIHZhbGlkYXRpb24gZXJyb3IKICAgICAgICBpZiAoICRWYWxpZGF0aW9uUmVzdWx0LT57U2VydmVyRXJyb3J9ICkgewoKICAgICAgICAgICAgbXkgJEVycm9yTWVzc2FnZSA9ICRWYWxpZGF0aW9uUmVzdWx0LT57RXJyb3JNZXNzYWdlfQogICAgICAgICAgICAgICAgfHwgIkR5bmFtaWMgZmllbGQgJER5bmFtaWNGaWVsZENvbmZpZy0+e0xhYmVsfSBpbnZhbGlkIjsKCiAgICAgICAgICAgICRTZWxmLT57TG9nT2JqZWN0fS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICRFcnJvck1lc3NhZ2UsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgIyBzZW5kIGVtYWlsCiAgICBteSAlU3RhdGVEYXRhID0gJFNlbGYtPntUaWNrZXRPYmplY3R9LT57U3RhdGVPYmplY3R9LT5TdGF0ZUdldCggSUQgPT4gJFBhcmFte1N0YXRlSUR9LCApOwoKICAgICMgY2hlY2sgcGVuZGluZyBkYXRlCiAgICBpZiAoICRTdGF0ZURhdGF7VHlwZU5hbWV9ICYmICRTdGF0ZURhdGF7VHlwZU5hbWV9ID1+IC9ecGVuZGluZy9pICkgewogICAgICAgIGlmICggISRTZWxmLT57VGltZU9iamVjdH0tPlRpbWVTdGFtcDJTeXN0ZW1UaW1lKCBTdHJpbmcgPT4gJFBhcmFte1BlbmRpbmdEYXRlfSApICkgewogICAgICAgICAgICAkU2VsZi0+e0xvZ09iamVjdH0tPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAnRGF0ZSBpbnZhbGlkJywKICAgICAgICAgICAgKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgICAgICBpZiAoCiAgICAgICAgICAgICRTZWxmLT57VGltZU9iamVjdH0tPlRpbWVTdGFtcDJTeXN0ZW1UaW1lKCBTdHJpbmcgPT4gJFBhcmFte1BlbmRpbmdEYXRlfSApCiAgICAgICAgICAgIDwgJFNlbGYtPntUaW1lT2JqZWN0fS0+U3lzdGVtVGltZSgpCiAgICAgICAgICAgICkKICAgICAgICB7CiAgICAgICAgICAgICRTZWxmLT57TG9nT2JqZWN0fS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICdEYXRlIGludmFsaWQnLAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgICMgY2hlY2sgc29tZSB2YWx1ZXMKICAgIGZvciBteSAkTGluZSAocXcoRnJvbSBUbyBDYyBCY2MpKSB7CiAgICAgICAgbmV4dCBpZiAhJFBhcmFteyRMaW5lfTsKICAgICAgICBmb3IgbXkgJEVtYWlsICggTWFpbDo6QWRkcmVzcy0+cGFyc2UoICRQYXJhbXskTGluZX0gKSApIHsKICAgICAgICAgICAgaWYgKCAhJFNlbGYtPntDaGVja0l0ZW1PYmplY3R9LT5DaGVja0VtYWlsKCBBZGRyZXNzID0+ICRFbWFpbC0+YWRkcmVzcygpICkgKSB7CiAgICAgICAgICAgICAgICBteSAkU2VydmVyRXJyb3IgPSAkU2VsZi0+e0NoZWNrSXRlbU9iamVjdH0tPkNoZWNrRXJyb3IoKTsKICAgICAgICAgICAgICAgICRTZWxmLT57TG9nT2JqZWN0fS0+TG9nKAogICAgICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIkVycm9yIG9uIGZpZWxkIFwiJExpbmVcIiBcbiAkU2VydmVyRXJyb3IiLAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICAjIHJlcGxhY2UgPE9UUlNfVElDS0VUX1NUQVRFPiB3aXRoIG5leHQgdGlja2V0IHN0YXRlIG5hbWUKICAgIGlmICggJFN0YXRlRGF0YXtOYW1lfSApIHsKICAgICAgICAkUGFyYW17Qm9keX0gPX4gcy88T1RSU19USUNLRVRfU1RBVEU+LyRTdGF0ZURhdGF7TmFtZX0vZzsKICAgICAgICAkUGFyYW17Qm9keX0gPX4gcy8mbHQ7T1RSU19USUNLRVRfU1RBVEUmZ3Q7LyRTdGF0ZURhdGF7TmFtZX0vZzsKICAgIH0KCiAgICAjIGdldCByZWNpcGllbnRzCiAgICBteSAkUmVjaXBpZW50cyA9ICcnOwogICAgZm9yIG15ICRMaW5lIChxdyhUbyBDYyBCY2MpKSB7CiAgICAgICAgaWYgKCAkUGFyYW17JExpbmV9ICkgewogICAgICAgICAgICBpZiAoJFJlY2lwaWVudHMpIHsKICAgICAgICAgICAgICAgICRSZWNpcGllbnRzIC49ICcsJzsKICAgICAgICAgICAgfQogICAgICAgICAgICAkUmVjaXBpZW50cyAuPSAkUGFyYW17JExpbmV9OwogICAgICAgIH0KICAgIH0KCiAgICBteSAkTWltZVR5cGUgPSAndGV4dC9wbGFpbic7CgogICAgIyBzZW5kIGVtYWlsCiAgICBteSAkQXJ0aWNsZUlEID0gJFNlbGYtPntUaWNrZXRPYmplY3R9LT5BcnRpY2xlU2VuZCgKICAgICAgICBBcnRpY2xlVHlwZSAgICA9PiAnZW1haWwtZXh0ZXJuYWwnLAogICAgICAgIFNlbmRlclR5cGUgICAgID0+ICdhZ2VudCcsCiAgICAgICAgVGlja2V0SUQgICAgICAgPT4gJFBhcmFte1RpY2tldElEfSwKICAgICAgICBIaXN0b3J5VHlwZSAgICA9PiAnU2VuZEFuc3dlcicsCiAgICAgICAgSGlzdG9yeUNvbW1lbnQgPT4gIlwlXCUkUmVjaXBpZW50cyIsCiAgICAgICAgRnJvbSAgICAgICAgICAgPT4gJFBhcmFte0Zyb219LAogICAgICAgIFRvICAgICAgICAgICAgID0+ICRQYXJhbXtUb30sCiAgICAgICAgQ2MgICAgICAgICAgICAgPT4gJFBhcmFte0NjfSwKICAgICAgICBCY2MgICAgICAgICAgICA9PiAkUGFyYW17QmNjfSwKICAgICAgICBTdWJqZWN0ICAgICAgICA9PiAkUGFyYW17U3ViamVjdH0sCiAgICAgICAgVXNlcklEICAgICAgICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgQm9keSAgICAgICAgICAgPT4gJFBhcmFte0JvZHl9LAogICAgICAgIEluUmVwbHlUbyAgICAgID0+ICRQYXJhbXtJblJlcGx5VG99LAogICAgICAgIFJlZmVyZW5jZXMgICAgID0+ICRQYXJhbXtSZWZlcmVuY2VzfSwKICAgICAgICBDaGFyc2V0ICAgICAgICA9PiAkU2VsZi0+e0NvbmZpZ09iamVjdH0tPkdldCgnRGVmYXVsdENoYXJzZXQnKSwKICAgICAgICBNaW1lVHlwZSAgICAgICA9PiAkTWltZVR5cGUsCiAgICApOwoKICAgICMgZXJyb3IgcGFnZQogICAgaWYgKCAhJEFydGljbGVJRCApIHsKICAgICAgICAkU2VsZi0+e0xvZ09iamVjdH0tPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gJ0Vycm9yIG5vIEFydGljbGUgY3JlYXRlZCEgUGxlYXNlIGNvbnRhY3QgdGhlIGFkbWluJywKICAgICAgICApOwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICAjIHRpbWUgYWNjb3VudGluZwogICAgaWYgKCAkUGFyYW17VGltZVVuaXRzfSApIHsKICAgICAgICAkU2VsZi0+e1RpY2tldE9iamVjdH0tPlRpY2tldEFjY291bnRUaW1lKAogICAgICAgICAgICBUaWNrZXRJRCAgPT4gJFBhcmFte1RpY2tldElEfSwKICAgICAgICAgICAgQXJ0aWNsZUlEID0+ICRBcnRpY2xlSUQsCiAgICAgICAgICAgIFRpbWVVbml0ICA9PiAkUGFyYW17VGltZVVuaXRzfSwKICAgICAgICAgICAgVXNlcklEICAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICk7CiAgICB9CgogICAgIyBzZXQgZHluYW1pYyBmaWVsZHMKICAgICMgY3ljbGUgdHJvdWdoIHRoZSBhY3RpdmF0ZWQgRHluYW1pYyBGaWVsZHMgZm9yIHRoaXMgc2NyZWVuCiAgICBEWU5BTUlDRklFTEQ6CiAgICBmb3IgbXkgJER5bmFtaWNGaWVsZENvbmZpZyAoIEB7ICRTZWxmLT57RHluYW1pY0ZpZWxkfSB9ICkgewogICAgICAgIG5leHQgRFlOQU1JQ0ZJRUxEIGlmICFJc0hhc2hSZWZXaXRoRGF0YSgkRHluYW1pY0ZpZWxkQ29uZmlnKTsKCiAgICAgICAgIyBzZXQgdGhlIG9iamVjdCBJRCAoVGlja2V0SUQgb3IgQXJ0aWNsZUlEKSBkZXBlbmRpbmcgb24gdGhlIGZpZWxkIGNvbmZpZ3JhdGlvbgogICAgICAgIG15ICRPYmplY3RJRAogICAgICAgICAgICA9ICREeW5hbWljRmllbGRDb25maWctPntPYmplY3RUeXBlfSBlcSAnQXJ0aWNsZScgPyAkQXJ0aWNsZUlEIDogJFBhcmFte1RpY2tldElEfTsKCiAgICAgICAgIyBzZXQgdGhlIHZhbHVlCiAgICAgICAgbXkgJFN1Y2Nlc3MgPSAkU2VsZi0+e0JhY2tlbmRPYmplY3R9LT5WYWx1ZVNldCgKICAgICAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnID0+ICREeW5hbWljRmllbGRDb25maWcsCiAgICAgICAgICAgIE9iamVjdElEICAgICAgICAgICA9PiAkT2JqZWN0SUQsCiAgICAgICAgICAgIFZhbHVlICAgICAgICAgICAgICA9PiAkRHluYW1pY0ZpZWxkVmFsdWVzeyAkRHluYW1pY0ZpZWxkQ29uZmlnLT57TmFtZX0gfSwKICAgICAgICAgICAgVXNlcklEICAgICAgICAgICAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICk7CiAgICB9CgogICAgIyBzZXQgc3RhdGUKICAgIGlmICggJFNlbGYtPntDb25maWd9LT57U3RhdGV9ICYmICRQYXJhbXtTdGF0ZUlEfSApIHsKICAgICAgICAkU2VsZi0+e1RpY2tldE9iamVjdH0tPlRpY2tldFN0YXRlU2V0KAogICAgICAgICAgICBUaWNrZXRJRCA9PiAkUGFyYW17VGlja2V0SUR9LAogICAgICAgICAgICBTdGF0ZUlEICA9PiAkUGFyYW17U3RhdGVJRH0sCiAgICAgICAgICAgIFVzZXJJRCAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICk7CiAgICB9CgogICAgIyBzaG91bGQgSSBzZXQgYW4gdW5sb2NrPwogICAgaWYgKCAkU3RhdGVEYXRhe1R5cGVOYW1lfSA9fiAvXmNsb3NlL2kgKSB7CiAgICAgICAgJFNlbGYtPntUaWNrZXRPYmplY3R9LT5UaWNrZXRMb2NrU2V0KAogICAgICAgICAgICBUaWNrZXRJRCA9PiAkUGFyYW17VGlja2V0SUR9LAogICAgICAgICAgICBMb2NrICAgICA9PiAndW5sb2NrJywKICAgICAgICAgICAgVXNlcklEICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgKTsKICAgIH0KCiAgICAjIHNldCBwZW5kaW5nIHRpbWUKICAgIGVsc2lmICggJFN0YXRlRGF0YXtUeXBlTmFtZX0gPX4gL15wZW5kaW5nL2kgKSB7CiAgICAgICAgJFNlbGYtPntUaWNrZXRPYmplY3R9LT5UaWNrZXRQZW5kaW5nVGltZVNldCgKICAgICAgICAgICAgVXNlcklEICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgIFRpY2tldElEID0+ICRQYXJhbXtUaWNrZXRJRH0sCiAgICAgICAgICAgIFN0cmluZyAgID0+ICRQYXJhbXtQZW5kaW5nRGF0ZX0sCiAgICAgICAgKTsKICAgIH0KCiAgICAjIGxvZyB1c2UgcmVzcG9uc2UgaWQgYW5kIHJlcGx5IGFydGljbGUgaWQgKHVzZWZ1bCBmb3IgcmVzcG9uc2UgZGlhZ25vc3RpY3MpCiAgICBteSAkSGlzdG9yeU5hbWU7CiAgICBpZiAoICRQYXJhbXtSZXBseUFydGljbGVJRH0gKSB7CiAgICAgICAgJEhpc3RvcnlOYW1lID0gIlJlc3BvbnNlIGZyb20gaVBob25lIC8kUGFyYW17UmVwbHlBcnRpY2xlSUR9LyRBcnRpY2xlSUQpIjsKICAgIH0KICAgIGVsc2UgewogICAgICAgICRIaXN0b3J5TmFtZSA9ICJSZXNwb25zZSBmcm9tIGlQaG9uZSAvJEFydGljbGVJRCkiCiAgICB9CiAgICAkU2VsZi0+e1RpY2tldE9iamVjdH0tPkhpc3RvcnlBZGQoCiAgICAgICAgTmFtZSAgICAgICAgID0+ICRIaXN0b3J5TmFtZSwKICAgICAgICBIaXN0b3J5VHlwZSAgPT4gJ01pc2MnLAogICAgICAgIFRpY2tldElEICAgICA9PiAkUGFyYW17VGlja2V0SUR9LAogICAgICAgIENyZWF0ZVVzZXJJRCA9PiAkUGFyYW17VXNlcklEfSwKICAgICk7CiAgICByZXR1cm4gJEFydGljbGVJRDsKfQoKc3ViIF9UaWNrZXRNb3ZlIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGZvciAocXcoVGlja2V0SUQpKSB7CiAgICAgICAgaWYgKCAhJFBhcmFteyRffSApIHsKICAgICAgICAgICAgJFNlbGYtPntMb2dPYmplY3R9LT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5vICRfIGlzIGdpdmVuISBQbGVhc2UgY29udGFjdCB0aGUgYWRtaW4uIiwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICAkU2VsZi0+e0NvbmZpZ30KICAgICAgICA9ICRTZWxmLT57Q29uZmlnT2JqZWN0fS0+R2V0KCdpUGhvbmU6OkZyb250ZW5kOjpBZ2VudFRpY2tldE1vdmUnKTsKCiAgICAjIGNoZWNrIHBlcm1pc3Npb25zCiAgICBteSAkQWNjZXNzID0gJFNlbGYtPntUaWNrZXRPYmplY3R9LT5UaWNrZXRQZXJtaXNzaW9uKAogICAgICAgIFR5cGUgICAgID0+ICdtb3ZlJywKICAgICAgICBUaWNrZXRJRCA9PiAkUGFyYW17VGlja2V0SUR9LAogICAgICAgIFVzZXJJRCAgID0+ICRQYXJhbXtVc2VySUR9CiAgICApOwoKICAgICMgZXJyb3Igc2NyZWVuLCBkb24ndCBzaG93IHRpY2tldAogICAgaWYgKCAhJEFjY2VzcyApIHsKICAgICAgICAkU2VsZi0+e0xvZ09iamVjdH0tPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gIllvdSBuZWVkICRTZWxmLT57Q29uZmlnfS0+e1Blcm1pc3Npb259IHBlcm1pc3Npb25zISIsCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgIyBnZXQgbG9jayBzdGF0ZQogICAgaWYgKCAkU2VsZi0+e0NvbmZpZ30tPntSZXF1aXJlZExvY2t9ICkgewogICAgICAgIG15ICRMb2NrZWQgPSAkU2VsZi0+e1RpY2tldE9iamVjdH0tPlRpY2tldExvY2tHZXQoIFRpY2tldElEID0+ICRQYXJhbXtUaWNrZXRJRH0gKTsKICAgICAgICBpZiAoICEkTG9ja2VkICkgewogICAgICAgICAgICAkU2VsZi0+e1RpY2tldE9iamVjdH0tPlRpY2tldExvY2tTZXQoCiAgICAgICAgICAgICAgICBUaWNrZXRJRCA9PiAkUGFyYW17VGlja2V0SUR9LAogICAgICAgICAgICAgICAgTG9jayAgICAgPT4gJ2xvY2snLAogICAgICAgICAgICAgICAgVXNlcklEICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgICk7CgogICAgICAgICAgICBteSAkU3VjY2VzcyA9ICRTZWxmLT57VGlja2V0T2JqZWN0fS0+VGlja2V0T3duZXJTZXQoCiAgICAgICAgICAgICAgICBUaWNrZXRJRCAgPT4gJFBhcmFte1RpY2tldElEfSwKICAgICAgICAgICAgICAgIFVzZXJJRCAgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgICAgIE5ld1VzZXJJRCA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgIG15ICRBY2Nlc3NPayA9ICRTZWxmLT57VGlja2V0T2JqZWN0fS0+T3duZXJDaGVjaygKICAgICAgICAgICAgICAgIFRpY2tldElEID0+ICRQYXJhbXtUaWNrZXRJRH0sCiAgICAgICAgICAgICAgICBPd25lcklEICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgaWYgKCAhJEFjY2Vzc09rICkgewogICAgICAgICAgICAgICAgJFNlbGYtPntMb2dPYmplY3R9LT5Mb2coCiAgICAgICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiU29ycnksIHlvdSBuZWVkIHRvIGJlIHRoZSBvd25lciB0byBkbyB0aGlzIGFjdGlvbiEgIgogICAgICAgICAgICAgICAgICAgICAgICAuICJQbGVhc2UgY2hhbmdlIHRoZSBvd25lciBmaXJzdC4iLAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICAjIHRpY2tldCBhdHRyaWJ1dGVzCiAgICBteSAlVGlja2V0ID0gJFNlbGYtPntUaWNrZXRPYmplY3R9LT5UaWNrZXRHZXQoIFRpY2tldElEID0+ICRQYXJhbXtUaWNrZXRJRH0gKTsKCiAgICAjIHRyYW5zZm9ybSBwZW5kaW5nIHRpbWUsIHRpbWUgc3RhbXAgYmFzZWQgb24gdXNlciB0aW1lIHpvbmUKICAgIGlmICggSXNTdHJpbmdXaXRoRGF0YSggJFBhcmFte1BlbmRpbmdEYXRlfSApICkgewogICAgICAgICRQYXJhbXtQZW5kaW5nRGF0ZX0gPSAkU2VsZi0+X1RyYW5zZm9ybURhdGVTZWxlY3Rpb24oCiAgICAgICAgICAgIFRpbWVTdGFtcCA9PiAkUGFyYW17UGVuZGluZ0RhdGV9LAogICAgICAgICk7CiAgICB9CgogICAgbXkgJFVzZXJUaW1lWm9uZSA9ICRTZWxmLT57VXNlclRpbWVab25lfTsKCiAgICAjIGdldCBkeW5hbWljIGZpZWxkIGNvbmZpZyBmb3IgdGhlIHNjcmVlbgogICAgJFNlbGYtPntEeW5hbWljRmllbGRGaWx0ZXJ9ID0gJFNlbGYtPntDb25maWd9LT57RHluYW1pY0ZpZWxkfTsKCiAgICAjIGdldCB0aGUgZHluYW1pYyBmaWVsZHMgZm9yIHRpY2tldCBvYmplY3QKICAgICRTZWxmLT57RHluYW1pY0ZpZWxkfSA9ICRTZWxmLT57RHluYW1pY0ZpZWxkT2JqZWN0fS0+RHluYW1pY0ZpZWxkTGlzdEdldCgKICAgICAgICBWYWxpZCAgICAgICA9PiAxLAogICAgICAgIE9iamVjdFR5cGUgID0+IFsgJ1RpY2tldCcsICdBcnRpY2xlJyBdLAogICAgICAgIEZpZWxkRmlsdGVyID0+ICRTZWxmLT57RHluYW1pY0ZpZWxkRmlsdGVyfSB8fCB7fSwKICAgICk7CgogICAgbXkgJUR5bmFtaWNGaWVsZFZhbHVlczsKCiAgICAjIGN5Y2xlIHRyb3VnaCB0aGUgYWN0aXZhdGVkIER5bmFtaWMgRmllbGRzIGZvciB0aGlzIHNjcmVlbgogICAgRFlOQU1JQ0ZJRUxEOgogICAgZm9yIG15ICREeW5hbWljRmllbGRDb25maWcgKCBAeyAkU2VsZi0+e0R5bmFtaWNGaWVsZH0gfSApIHsKICAgICAgICBuZXh0IERZTkFNSUNGSUVMRCBpZiAhSXNIYXNoUmVmV2l0aERhdGEoJER5bmFtaWNGaWVsZENvbmZpZyk7CiAgICAgICAgbmV4dCBEWU5BTUlDRklFTEQgaWYgIUlzSGFzaFJlZldpdGhEYXRhKCAkRHluYW1pY0ZpZWxkQ29uZmlnLT57Q29uZmlnfSApOwogICAgICAgIG5leHQgRFlOQU1JQ0ZJRUxEIGlmICEkRHluYW1pY0ZpZWxkQ29uZmlnLT57TmFtZX07CgogICAgICAgICMgc2tpcCBhbGwgZHluYW1pYyBmaWVsZHMgdGhhdCBhcmUgbm90IGRlc2lnbmVkIHJlbmRlciBpbiBpUGhvbmUgQXBwCiAgICAgICAgbXkgJElzSVBob25lQ2FwYWJsZSA9ICRTZWxmLT57QmFja2VuZE9iamVjdH0tPkhhc0JlaGF2aW9yKAogICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgPT4gJER5bmFtaWNGaWVsZENvbmZpZywKICAgICAgICAgICAgQmVoYXZpb3IgICAgICAgICAgID0+ICdJc0lQaG9uZUNhcGFibGUnLAogICAgICAgICk7CiAgICAgICAgbmV4dCBEWU5BTUlDRklFTEQgaWYgISRJc0lQaG9uZUNhcGFibGU7CgogICAgICAgICMgZXh0cmFjdCB0aGUgZHluYW1pYyBmaWVsZCB2YWx1ZSBmb3JtIHBhcmFtZXRlcnMKICAgICAgICAkRHluYW1pY0ZpZWxkVmFsdWVzeyAkRHluYW1pY0ZpZWxkQ29uZmlnLT57TmFtZX0gfQogICAgICAgICAgICA9ICRTZWxmLT57QmFja2VuZE9iamVjdH0tPklQaG9uZUZpZWxkVmFsdWVHZXQoCiAgICAgICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyA9PiAkRHluYW1pY0ZpZWxkQ29uZmlnLAogICAgICAgICAgICBUcmFuc2Zvcm1EYXRlcyAgICAgPT4gMSwKICAgICAgICAgICAgVXNlclRpbWVab25lICAgICAgID0+ICRVc2VyVGltZVpvbmUgfHwgMCwKICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICAgICApOwoKICAgICAgICAjIHBlcmZvcm0gdmFsaWRhdGlvbiBvZiB0aGUgZGF0YQogICAgICAgIG15ICRWYWxpZGF0aW9uUmVzdWx0ID0gJFNlbGYtPntCYWNrZW5kT2JqZWN0fS0+SVBob25lRmllbGRWYWx1ZVZhbGlkYXRlKAogICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgPT4gJER5bmFtaWNGaWVsZENvbmZpZywKICAgICAgICAgICAgVmFsdWUgICAgICAgICAgICAgID0+ICREeW5hbWljRmllbGRWYWx1ZXN7ICREeW5hbWljRmllbGRDb25maWctPntOYW1lfSB9LAogICAgICAgICAgICBNYW5kYXRvcnkgPT4gJFNlbGYtPntDb25maWd9LT57RHluYW1pY0ZpZWxkfS0+eyAkRHluYW1pY0ZpZWxkQ29uZmlnLT57TmFtZX0gfSA9PSAyLAogICAgICAgICk7CgogICAgICAgIGlmICggIUlzSGFzaFJlZldpdGhEYXRhKCRWYWxpZGF0aW9uUmVzdWx0KSApIHsKICAgICAgICAgICAgJFNlbGYtPntMb2dPYmplY3R9LT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIkNvdWxkIG5vdCBwZXJmb3JtIHZhbGlkYXRpb24gb24gZmllbGQgJER5bmFtaWNGaWVsZENvbmZpZy0+e0xhYmVsfSEiLAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQoKICAgICAgICAjIHByb3BhZ2F0ZSB2YWxpZGF0aW9uIGVycm9yCiAgICAgICAgaWYgKCAkVmFsaWRhdGlvblJlc3VsdC0+e1NlcnZlckVycm9yfSApIHsKCiAgICAgICAgICAgIG15ICRFcnJvck1lc3NhZ2UgPSAkVmFsaWRhdGlvblJlc3VsdC0+e0Vycm9yTWVzc2FnZX0KICAgICAgICAgICAgICAgIHx8ICJEeW5hbWljIGZpZWxkICREeW5hbWljRmllbGRDb25maWctPntMYWJlbH0gaW52YWxpZCI7CgogICAgICAgICAgICAkU2VsZi0+e0xvZ09iamVjdH0tPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAkRXJyb3JNZXNzYWdlLAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgICMgRGVzdFF1ZXVlSUQgbG9va3VwCiAgICBpZiAoICEkUGFyYW17UXVldWVJRH0gKSB7CiAgICAgICAgJFNlbGYtPntMb2dPYmplY3R9LT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJObyBRdWV1ZUlEIGlzIGdpdmVuISBQbGVhc2UgY29udGFjdCB0aGUgYWRtaW4uIiwKICAgICAgICApOwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICBpZiAoICRQYXJhbXtPd25lcklEfSApIHsKICAgICAgICAkUGFyYW17TmV3VXNlcklEfSA9ICRQYXJhbXtPd25lcklEfTsKICAgIH0KCiAgICAjIG1vdmUgdGlja2V0IChzZW5kIG5vdGlmaWNhdGlvbiBvZiBubyBuZXcgb3duZXIgaXMgc2VsZWN0ZWQpCiAgICBteSAkQm9keUFzVGV4dCA9ICRQYXJhbXtCb2R5fSB8fCAnJzsKICAgIG15ICRNb3ZlID0gJFNlbGYtPntUaWNrZXRPYmplY3R9LT5UaWNrZXRRdWV1ZVNldCgKICAgICAgICBRdWV1ZUlEICAgICAgICAgICAgPT4gJFBhcmFte1F1ZXVlSUR9LAogICAgICAgIFVzZXJJRCAgICAgICAgICAgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICBUaWNrZXRJRCAgICAgICAgICAgPT4gJFBhcmFte1RpY2tldElEfSwKICAgICAgICBTZW5kTm9Ob3RpZmljYXRpb24gPT4gJFBhcmFte05ld1VzZXJJRH0sCiAgICAgICAgQ29tbWVudCAgICAgICAgICAgID0+ICRCb2R5QXNUZXh0LAogICAgKTsKICAgIGlmICggISRNb3ZlICkgewogICAgICAgICRTZWxmLT57TG9nT2JqZWN0fS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAiRXJyb3I6IHRpY2tldCBub3QgbW92ZWQhIFBsZWFzZSBjb250YWN0IHRoZSBhZG1pbi4iLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgICMgc2V0IHByaW9yaXR5CiAgICBpZiAoICRTZWxmLT57Q29uZmlnfS0+e1ByaW9yaXR5fSAmJiAkUGFyYW17UHJpb3JpdHlJRH0gKSB7CiAgICAgICAgJFNlbGYtPntUaWNrZXRPYmplY3R9LT5UaWNrZXRQcmlvcml0eVNldCgKICAgICAgICAgICAgVGlja2V0SUQgICA9PiAkUGFyYW17VGlja2V0SUR9LAogICAgICAgICAgICBQcmlvcml0eUlEID0+ICRQYXJhbXtQcmlvcml0eUlEfSwKICAgICAgICAgICAgVXNlcklEICAgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICApOwogICAgfQoKICAgICMgc2V0IHN0YXRlCiAgICBpZiAoICRTZWxmLT57Q29uZmlnfS0+e1N0YXRlfSAmJiAkUGFyYW17U3RhdGVJRH0gKSB7CgogICAgICAgICRTZWxmLT57VGlja2V0T2JqZWN0fS0+VGlja2V0U3RhdGVTZXQoCiAgICAgICAgICAgIFRpY2tldElEID0+ICRQYXJhbXtUaWNrZXRJRH0sCiAgICAgICAgICAgIFN0YXRlSUQgID0+ICRQYXJhbXtTdGF0ZUlEfSwKICAgICAgICAgICAgVXNlcklEICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgKTsKCiAgICAgICAgIyB1bmxvY2sgdGhlIHRpY2tldCBhZnRlciBjbG9zZQogICAgICAgIG15ICVTdGF0ZURhdGEgPSAkU2VsZi0+e1RpY2tldE9iamVjdH0tPntTdGF0ZU9iamVjdH0tPlN0YXRlR2V0KAogICAgICAgICAgICBJRCA9PiAkUGFyYW17U3RhdGVJRH0sCiAgICAgICAgKTsKCiAgICAgICAgIyBzZXQgdW5sb2NrIG9uIGNsb3NlIHN0YXRlCiAgICAgICAgaWYgKCAkU3RhdGVEYXRhe1R5cGVOYW1lfSA9fiAvXmNsb3NlL2kgKSB7CiAgICAgICAgICAgICRTZWxmLT57VGlja2V0T2JqZWN0fS0+VGlja2V0TG9ja1NldCgKICAgICAgICAgICAgICAgIFRpY2tldElEID0+ICRQYXJhbXtUaWNrZXRJRH0sCiAgICAgICAgICAgICAgICBMb2NrICAgICA9PiAndW5sb2NrJywKICAgICAgICAgICAgICAgIFVzZXJJRCAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICApOwogICAgICAgIH0KICAgIH0KCiAgICAjIGNoZWNrIGlmIG5ldyB1c2VyIGlzIGdpdmVuIGFuZCBzZW5kIG5vdGlmaWNhdGlvbgogICAgaWYgKCAkUGFyYW17TmV3VXNlcklEfSApIHsKCiAgICAgICAgIyBsb2NrCiAgICAgICAgJFNlbGYtPntUaWNrZXRPYmplY3R9LT5UaWNrZXRMb2NrU2V0KAogICAgICAgICAgICBUaWNrZXRJRCA9PiAkUGFyYW17VGlja2V0SUR9LAogICAgICAgICAgICBMb2NrICAgICA9PiAnbG9jaycsCiAgICAgICAgICAgIFVzZXJJRCAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICk7CgogICAgICAgICMgc2V0IG93bmVyCiAgICAgICAgJFNlbGYtPntUaWNrZXRPYmplY3R9LT5UaWNrZXRPd25lclNldCgKICAgICAgICAgICAgVGlja2V0SUQgID0+ICRQYXJhbXtUaWNrZXRJRH0sCiAgICAgICAgICAgIFVzZXJJRCAgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgTmV3VXNlcklEID0+ICRQYXJhbXtOZXdVc2VySUR9LAogICAgICAgICAgICBDb21tZW50ICAgPT4gJEJvZHlBc1RleHQsCiAgICAgICAgKTsKICAgIH0KCiAgICAjIGZvcmNlIHVubG9jayBpZiBubyBuZXcgb3duZXIgaXMgc2V0IGFuZCB0aWNrZXQgd2FzIHVubG9ja2VkCiAgICBlbHNlIHsKICAgICAgICBpZiAoICRTZWxmLT57VGlja2V0VW5sb2NrfSApIHsKICAgICAgICAgICAgJFNlbGYtPntUaWNrZXRPYmplY3R9LT5UaWNrZXRMb2NrU2V0KAogICAgICAgICAgICAgICAgVGlja2V0SUQgPT4gJFBhcmFte1RpY2tldElEfSwKICAgICAgICAgICAgICAgIExvY2sgICAgID0+ICd1bmxvY2snLAogICAgICAgICAgICAgICAgVXNlcklEICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgfQoKICAgICMgYWRkIG5vdGUgKHNlbmQgbm8gbm90aWZpY2F0aW9uKQogICAgbXkgJE1pbWVUeXBlID0gJ3RleHQvcGxhaW4nOwoKICAgIG15ICVVc2VyRGF0YSA9ICRTZWxmLT57VXNlck9iamVjdH0tPkdldFVzZXJEYXRhKCBVc2VySUQgPT4gJFBhcmFte1VzZXJJRH0gKTsKCiAgICBteSAkQXJ0aWNsZUlEID0gJFNlbGYtPntUaWNrZXRPYmplY3R9LT5BcnRpY2xlQ3JlYXRlKAogICAgICAgIFRpY2tldElEICAgICAgID0+ICRQYXJhbXtUaWNrZXRJRH0sCiAgICAgICAgQXJ0aWNsZVR5cGUgICAgPT4gJ25vdGUtaW50ZXJuYWwnLAogICAgICAgIFNlbmRlclR5cGUgICAgID0+ICdhZ2VudCcsCiAgICAgICAgRnJvbSAgICAgICAgICAgPT4gIiRVc2VyRGF0YXtVc2VyRmlyc3RuYW1lfSAkVXNlckRhdGF7VXNlckxhc3RuYW1lfSA8JFVzZXJEYXRhe1VzZXJFbWFpbH0+IiwKICAgICAgICBTdWJqZWN0ICAgICAgICA9PiAkUGFyYW17U3ViamVjdH0sCiAgICAgICAgQm9keSAgICAgICAgICAgPT4gJFBhcmFte0JvZHl9LAogICAgICAgIE1pbWVUeXBlICAgICAgID0+ICRNaW1lVHlwZSwKICAgICAgICBDaGFyc2V0ICAgICAgICA9PiAkU2VsZi0+e0NvbmZpZ09iamVjdH0tPkdldCgnRGVmYXVsdENoYXJzZXQnKSwKICAgICAgICBVc2VySUQgICAgICAgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICBIaXN0b3J5VHlwZSAgICA9PiAnQWRkTm90ZScsCiAgICAgICAgSGlzdG9yeUNvbW1lbnQgPT4gJyUlTW92ZScsCiAgICAgICAgTm9BZ2VudE5vdGlmeSAgPT4gMSwKICAgICk7CgogICAgaWYgKCAhJEFydGljbGVJRCApIHsKICAgICAgICAkU2VsZi0+e0xvZ09iamVjdH0tPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gIkVycm9yOiBDYW4ndCBjcmVhdGUgYW4gYXJ0aWNsZSBmb3IgdGhlIG1vdmVkIHRpY2tldCIsCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgIyBzZXQgZHluYW1pYyBmaWVsZHMKICAgICMgY3ljbGUgdHJvdWdoIHRoZSBhY3RpdmF0ZWQgRHluYW1pYyBGaWVsZHMgZm9yIHRoaXMgc2NyZWVuCiAgICBEWU5BTUlDRklFTEQ6CiAgICBmb3IgbXkgJER5bmFtaWNGaWVsZENvbmZpZyAoIEB7ICRTZWxmLT57RHluYW1pY0ZpZWxkfSB9ICkgewogICAgICAgIG5leHQgRFlOQU1JQ0ZJRUxEIGlmICFJc0hhc2hSZWZXaXRoRGF0YSgkRHluYW1pY0ZpZWxkQ29uZmlnKTsKCiAgICAgICAgIyBzZXQgdGhlIG9iamVjdCBJRCAoVGlja2V0SUQgb3IgQXJ0aWNsZUlEKSBkZXBlbmRpbmcgb24gdGhlIGZpZWxkIGNvbmZpZ3JhdGlvbgogICAgICAgIG15ICRPYmplY3RJRAogICAgICAgICAgICA9ICREeW5hbWljRmllbGRDb25maWctPntPYmplY3RUeXBlfSBlcSAnQXJ0aWNsZScgPyAkQXJ0aWNsZUlEIDogJFBhcmFte1RpY2tldElEfTsKCiAgICAgICAgIyBzZXQgdGhlIHZhbHVlCiAgICAgICAgbXkgJFN1Y2Nlc3MgPSAkU2VsZi0+e0JhY2tlbmRPYmplY3R9LT5WYWx1ZVNldCgKICAgICAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnID0+ICREeW5hbWljRmllbGRDb25maWcsCiAgICAgICAgICAgIE9iamVjdElEICAgICAgICAgICA9PiAkT2JqZWN0SUQsCiAgICAgICAgICAgIFZhbHVlICAgICAgICAgICAgICA9PiAkRHluYW1pY0ZpZWxkVmFsdWVzeyAkRHluYW1pY0ZpZWxkQ29uZmlnLT57TmFtZX0gfSwKICAgICAgICAgICAgVXNlcklEICAgICAgICAgICAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICk7CiAgICB9CgogICAgIyB0aW1lIGFjY291bnRpbmcKICAgIGlmICggJFBhcmFte1RpbWVVbml0c30gKSB7CiAgICAgICAgJFNlbGYtPntUaWNrZXRPYmplY3R9LT5UaWNrZXRBY2NvdW50VGltZSgKICAgICAgICAgICAgVGlja2V0SUQgID0+ICRQYXJhbXtUaWNrZXRJRH0sCiAgICAgICAgICAgIEFydGljbGVJRCA9PiAkQXJ0aWNsZUlELAogICAgICAgICAgICBUaW1lVW5pdCAgPT4gJFBhcmFte1RpbWVVbml0c30sCiAgICAgICAgICAgIFVzZXJJRCAgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICApOwogICAgfQoKICAgIGlmICgkQXJ0aWNsZUlEKSB7CiAgICAgICAgcmV0dXJuICRBcnRpY2xlSUQ7CiAgICB9CiAgICBlbHNlIHsKICAgICAgICBpZiAoJE1vdmUpIHsKICAgICAgICAgICAgcmV0dXJuICRQYXJhbXtRdWV1ZUlEfTsKICAgICAgICB9CiAgICB9CiAgICByZXR1cm4gLTE7Cgp9CgpzdWIgX0dldENvbXBvc2VEZWZhdWx0cyB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIGlmICggISRQYXJhbXtUaWNrZXRJRH0gKSB7CiAgICAgICAgJFNlbGYtPntMb2dPYmplY3R9LT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICdObyBUaWNrZXRJRCBnaXZlbiEgUGxlYXNlIGNvbnRhY3QgdGhlIGFkbWluLicsCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgbXkgJUNvbXBvc2VEYXRhOwoKICAgICMgZ2V0IGxhc3QgY3VzdG9tZXIgYXJ0aWNsZSBvciBzZWxlY3RlZCBhcnRpY2xlIC4uLgogICAgbXkgJURhdGE7CiAgICBpZiAoICRQYXJhbXtBcnRpY2xlSUR9ICkgewogICAgICAgICVEYXRhID0gJFNlbGYtPntUaWNrZXRPYmplY3R9LT5BcnRpY2xlR2V0KCBBcnRpY2xlSUQgPT4gJFBhcmFte0FydGljbGVJRH0gKTsKICAgIH0KICAgIGVsc2UgewogICAgICAgICVEYXRhID0gJFNlbGYtPntUaWNrZXRPYmplY3R9LT5BcnRpY2xlTGFzdEN1c3RvbWVyQXJ0aWNsZSgKICAgICAgICAgICAgVGlja2V0SUQgPT4gJFBhcmFte1RpY2tldElEfSwKICAgICAgICApOwogICAgfQoKICAgICMgY2hlY2sgYXJ0aWNsZSB0eXBlIGFuZCByZXBsYWNlIFRvIHdpdGggRnJvbSAoaW4gY2FzZSkKICAgIGlmICggJERhdGF7U2VuZGVyVHlwZX0gIX4gL2N1c3RvbWVyLyApIHsKICAgICAgICBteSAkVG8gICA9ICREYXRhe1RvfTsKICAgICAgICBteSAkRnJvbSA9ICREYXRhe0Zyb219OwoKICAgICAgICAjIHNldCBPcmlnRnJvbSBmb3IgY29ycmVjdCBlbWFpbCBxdW90ZWluZyAoeHh4eCB3cm90ZSkKICAgICAgICAkRGF0YXtPcmlnRnJvbX0gPSAkRGF0YXtGcm9tfTsKCiAgICAgICAgIyByZXBsYWNlIEZyb20vVG8sIFRvL0Zyb20gYmVjYXVzZSBzZW5kZXIgaXMgYWdlbnQKICAgICAgICAkRGF0YXtGcm9tfSAgICA9ICRUbzsKICAgICAgICAkRGF0YXtUb30gICAgICA9ICREYXRhe0Zyb219OwogICAgICAgICREYXRhe1JlcGx5VG99ID0gJyc7CiAgICB9CiAgICBlbHNlIHsKCiAgICAgICAgIyBzZXQgT3JpZ0Zyb20gZm9yIGNvcnJlY3QgZW1haWwgcXVvdGVpbmcgKHh4eHggd3JvdGUpCiAgICAgICAgJERhdGF7T3JpZ0Zyb219ID0gJERhdGF7RnJvbX07CiAgICB9CgogICAgIyBidWlsZCBPcmlnRnJvbU5hbWUgKHRvIG9ubHkgdXNlIHRoZSByZWFsbmFtZSkKICAgICREYXRhe09yaWdGcm9tTmFtZX0gPSAkRGF0YXtPcmlnRnJvbX07CiAgICAkRGF0YXtPcmlnRnJvbU5hbWV9ID1+IHMvPC4qPnxcKC4qXCl8XCJ8O3wsLy9nOwogICAgJERhdGF7T3JpZ0Zyb21OYW1lfSA9fiBzLyggJCl8KCAgJCkvL2c7CgogICAgbXkgJVRpY2tldCA9ICRTZWxmLT57VGlja2V0T2JqZWN0fS0+VGlja2V0R2V0KAogICAgICAgIFRpY2tldElEID0+ICRQYXJhbXtUaWNrZXRJRH0sCiAgICAgICAgVXNlcklEICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICApOwoKICAgICMgZ2V0IGN1c3RvbWVyIGRhdGEKICAgIG15ICVDdXN0b21lcjsKICAgIGlmICggJFRpY2tldHtDdXN0b21lclVzZXJJRH0gKSB7CiAgICAgICAgJUN1c3RvbWVyID0gJFNlbGYtPntDdXN0b21lclVzZXJPYmplY3R9LT5DdXN0b21lclVzZXJEYXRhR2V0KAogICAgICAgICAgICBVc2VyID0+ICRUaWNrZXR7Q3VzdG9tZXJVc2VySUR9CiAgICAgICAgKTsKICAgIH0KCiAgICAjIHByZXBhcmUgYm9keSwgc3ViamVjdCwgUmVwbHlUbyAuLi4KICAgICMgcmV3cmFwIGJvZHkgaWYgZXhpc3RzCiAgICBpZiAoICREYXRhe0JvZHl9ICkgewogICAgICAgICREYXRhe0JvZHl9ID1+IHMvXHQvIC9nOwogICAgICAgIG15ICRRdW90ZSA9ICRTZWxmLT57Q29uZmlnT2JqZWN0fS0+R2V0KCdUaWNrZXQ6OkZyb250ZW5kOjpRdW90ZScpOwogICAgICAgIGlmICgkUXVvdGUpIHsKICAgICAgICAgICAgJERhdGF7Qm9keX0gPX4gcy9cbi9cbiRRdW90ZSAvZzsKICAgICAgICAgICAgJERhdGF7Qm9keX0gPSAiXG4kUXVvdGUgIiAuICREYXRhe0JvZHl9OwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgJERhdGF7Qm9keX0gPSAiXG4iIC4gJERhdGF7Qm9keX07CiAgICAgICAgICAgIGlmICggJERhdGF7Q3JlYXRlZH0gKSB7CiAgICAgICAgICAgICAgICAkRGF0YXtCb2R5fSA9ICJEYXRlOiAkRGF0YXtDcmVhdGVkfVxuIiAuICREYXRhe0JvZHl9OwogICAgICAgICAgICB9CiAgICAgICAgICAgIGZvciAocXcoU3ViamVjdCBSZXBseVRvIFJlcGx5LVRvIENjIFRvIEZyb20pKSB7CiAgICAgICAgICAgICAgICBpZiAoICREYXRheyRffSApIHsKICAgICAgICAgICAgICAgICAgICAkRGF0YXtCb2R5fSA9ICIkXzogJERhdGF7JF99XG4iIC4gJERhdGF7Qm9keX07CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgJERhdGF7Qm9keX0gPSAiXG4tLS0tIE1lc3NhZ2UgZnJvbSAkRGF0YXtGcm9tfSAtLS1cblxuIiAuICREYXRhe0JvZHl9OwogICAgICAgICAgICAkRGF0YXtCb2R5fSAuPSAiXG4tLS0tIEVuZCBNZXNzYWdlIC0tLVxuIjsKICAgICAgICB9CiAgICB9CgogICAgIyBjaGVjayBpZiBDYyByZWNpcGllbnRzIHNob3VsZCBiZSB1c2VkCiAgICBpZiAoICRTZWxmLT57Q29uZmlnT2JqZWN0fS0+R2V0KCdUaWNrZXQ6OkZyb250ZW5kOjpDb21wb3NlRXhjbHVkZUNjUmVjaXBpZW50cycpICkgewogICAgICAgICREYXRhe0NjfSA9ICcnOwogICAgfQoKICAgICMgYWRkIG5vdCBsb2NhbCBUbyBhZGRyZXNzZXMgdG8gQ2MKICAgIGZvciBteSAkRW1haWwgKCBNYWlsOjpBZGRyZXNzLT5wYXJzZSggJERhdGF7VG99ICkgKSB7CiAgICAgICAgbXkgJElzTG9jYWwgPSAkU2VsZi0+e1N5c3RlbUFkZHJlc3N9LT5TeXN0ZW1BZGRyZXNzSXNMb2NhbEFkZHJlc3MoCiAgICAgICAgICAgIEFkZHJlc3MgPT4gJEVtYWlsLT5hZGRyZXNzKCksCiAgICAgICAgKTsKICAgICAgICBpZiAoICEkSXNMb2NhbCApIHsKICAgICAgICAgICAgaWYgKCAkRGF0YXtDY30gKSB7CiAgICAgICAgICAgICAgICAkRGF0YXtDY30gLj0gJywgJzsKICAgICAgICAgICAgfQogICAgICAgICAgICAkRGF0YXtDY30gLj0gJEVtYWlsLT5mb3JtYXQoKTsKICAgICAgICB9CiAgICB9CgogICAgIyBjaGVjayBSZXBseVRvCiAgICBpZiAoICREYXRhe1JlcGx5VG99ICkgewogICAgICAgICREYXRhe1RvfSA9ICREYXRhe1JlcGx5VG99OwogICAgfQogICAgZWxzZSB7CiAgICAgICAgJERhdGF7VG99ID0gJERhdGF7RnJvbX07CgogICAgICAgICMgdHJ5IHRvIHJlbW92ZSBzb21lIHdyb25nIHRleHQgdG8gZnJvbSBsaW5lIChieSB3YXkgb2YgLi4uKQogICAgICAgICMgYWRkZWQgYnkgc29tZSBzdHJhbmdlIG1haWwgcHJvZ3JhbXMgb24gYm91bmNlCiAgICAgICAgJERhdGF7VG99ID1+IHMvKC4rP1w8Lis/XEAuKz9cPilccytcKGJ5XHMrd2F5XHMrb2ZccysuKz9cKS8kMS9pZzsKICAgIH0KCiAgICAjIGdldCB0byBlbWFpbCAoanVzdCAic29tZUBleGFtcGxlLmNvbSIpCiAgICBmb3IgbXkgJEVtYWlsICggTWFpbDo6QWRkcmVzcy0+cGFyc2UoICREYXRhe1RvfSApICkgewogICAgICAgICREYXRhe1RvRW1haWx9ID0gJEVtYWlsLT5hZGRyZXNzKCk7CiAgICB9CgogICAgIyB1c2UgY3VzdG9tZXIgZGF0YWJhc2UgZW1haWwKICAgIGlmICggJFNlbGYtPntDb25maWdPYmplY3R9LT5HZXQoJ1RpY2tldDo6RnJvbnRlbmQ6OkNvbXBvc2VBZGRDdXN0b21lckFkZHJlc3MnKSApIHsKCiAgICAgICAgIyBjaGVjayBpZiBjdXN0b21lciBpcyBpbiByZWNpcGllbnQgbGlzdAogICAgICAgIGlmICggJEN1c3RvbWVye1VzZXJFbWFpbH0gJiYgJERhdGF7VG9FbWFpbH0gIX4gL15cUSRDdXN0b21lcntVc2VyRW1haWx9XEUkL2kgKSB7CgogICAgICAgICAgICAjIHJlcGxhY2UgVG8gd2l0aCBjdXN0b21lcnMgZGF0YWJhc2UgYWRkcmVzcwogICAgICAgICAgICBpZiAoICRTZWxmLT57Q29uZmlnT2JqZWN0fS0+R2V0KCdUaWNrZXQ6OkZyb250ZW5kOjpDb21wb3NlUmVwbGFjZVNlbmRlckFkZHJlc3MnKSApIHsKICAgICAgICAgICAgICAgICREYXRhe1RvfSA9ICRDdXN0b21lcntVc2VyRW1haWx9OwogICAgICAgICAgICB9CgogICAgICAgICAgICAjIGFkZCBjdXN0b21lcnMgZGF0YWJhc2UgYWRkcmVzcyB0byBDYwogICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgIGlmICggJERhdGF7Q2N9ICkgewogICAgICAgICAgICAgICAgICAgICREYXRhe0NjfSAuPSAnLCAnIC4gJEN1c3RvbWVye1VzZXJFbWFpbH07CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAkRGF0YXtDY30gPSAkQ3VzdG9tZXJ7VXNlckVtYWlsfTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICAjIGZpbmQgZHVwbGljYXRlIGFkZHJlc3NlcwogICAgbXkgJVJlY2lwaWVudDsKICAgIGZvciBteSAkVHlwZSAocXcoVG8gQ2MgQmNjKSkgewogICAgICAgIGlmICggJERhdGF7JFR5cGV9ICkgewogICAgICAgICAgICBteSAkTmV3TGluZSA9ICcnOwogICAgICAgICAgICBmb3IgbXkgJEVtYWlsICggTWFpbDo6QWRkcmVzcy0+cGFyc2UoICREYXRheyRUeXBlfSApICkgewogICAgICAgICAgICAgICAgbXkgJEFkZHJlc3MgPSBsYyAkRW1haWwtPmFkZHJlc3MoKTsKCiAgICAgICAgICAgICAgICAjIG9ubHkgdXNlIGVtYWlsIGFkZHJlc3NlcyB3aXRoIEAgaW5zaWRlCiAgICAgICAgICAgICAgICBpZiAoICRBZGRyZXNzICYmICRBZGRyZXNzID1+IC9ALyAmJiAhJFJlY2lwaWVudHskQWRkcmVzc30gKSB7CiAgICAgICAgICAgICAgICAgICAgJFJlY2lwaWVudHskQWRkcmVzc30gPSAxOwogICAgICAgICAgICAgICAgICAgIG15ICRJc0xvY2FsID0gJFNlbGYtPntTeXN0ZW1BZGRyZXNzfS0+U3lzdGVtQWRkcmVzc0lzTG9jYWxBZGRyZXNzKAogICAgICAgICAgICAgICAgICAgICAgICBBZGRyZXNzID0+ICRBZGRyZXNzLAogICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgaWYgKCAhJElzTG9jYWwgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkTmV3TGluZSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgJE5ld0xpbmUgLj0gJywgJzsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAkTmV3TGluZSAuPSAkRW1haWwtPmZvcm1hdCgpOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICAkRGF0YXskVHlwZX0gPSAkTmV3TGluZTsKICAgICAgICB9CiAgICB9CgogICAgJFBhcmFte1Jlc3BvbnNlSUR9ID0gMTsKCiAgICAjIHNldCBubyBSaWNoVGV4dCBpbiBvcmRlciB0byBnZXQgdGV4dC9wbGFpbiB0ZW1wbGF0ZSBmb3IgdGhlIGlwaG9uZQogICAgJFNlbGYtPntDb25maWdPYmplY3R9LT5TZXQoIEtleSA9PiAnRnJvbnRlbmQ6OlJpY2hUZXh0JywgVmFsdWUgPT4gMCApOwoKICAgICMgZ2V0IHRlbXBsYXRlCiAgICBteSAkVGVtcGxhdGVHZW5lcmF0b3IgPSBLZXJuZWw6OlN5c3RlbTo6VGVtcGxhdGVHZW5lcmF0b3ItPm5ldyggJXskU2VsZn0gKTsKICAgIG15ICVSZXNwb25zZSAgICAgICAgICA9ICRUZW1wbGF0ZUdlbmVyYXRvci0+UmVzcG9uc2UoCiAgICAgICAgVGlja2V0SUQgICA9PiAkUGFyYW17VGlja2V0SUR9LAogICAgICAgIEFydGljbGVJRCAgPT4gJFBhcmFte0FydGljbGVJRH0sCiAgICAgICAgUmVzcG9uc2VJRCA9PiAkUGFyYW17UmVzcG9uc2VJRH0sCiAgICAgICAgRGF0YSAgICAgICA9PiBcJURhdGEsCiAgICAgICAgVXNlcklEICAgICA9PiAkUGFyYW17VXNlcklEfQogICAgKTsKICAgICREYXRhe1NhbHV0YXRpb259ICAgICAgID0gJFJlc3BvbnNle1NhbHV0YXRpb259OwogICAgJERhdGF7U2lnbmF0dXJlfSAgICAgICAgPSAkUmVzcG9uc2V7U2lnbmF0dXJlfTsKICAgICREYXRhe1N0YW5kYXJkUmVzcG9uc2V9ID0gJFJlc3BvbnNle1N0YW5kYXJkUmVzcG9uc2V9OwoKICAgICVEYXRhID0gJFRlbXBsYXRlR2VuZXJhdG9yLT5BdHRyaWJ1dGVzKAogICAgICAgIFRpY2tldElEICAgPT4gJFBhcmFte1RpY2tldElEfSwKICAgICAgICBBcnRpY2xlSUQgID0+ICRQYXJhbXtBcnRpY2xlSUR9LAogICAgICAgIFJlc3BvbnNlSUQgPT4gJFBhcmFte1Jlc3BvbnNlSUR9LAogICAgICAgIERhdGEgICAgICAgPT4gXCVEYXRhLAogICAgICAgIFVzZXJJRCAgICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICApOwoKICAgIG15ICRTYWx1dGF0aW9uID0gJERhdGF7U2FsdXRhdGlvbn07CiAgICBteSAkT3JpZ0Zyb20gICA9ICREYXRhe09yaWdGcm9tfTsKICAgIG15ICRXcm90ZSAgICAgID0gJFNlbGYtPntMYW5ndWFnZU9iamVjdH0tPkdldCgnd3JvdGUnKTsKICAgIG15ICRCb2R5ICAgICAgID0gJERhdGF7Qm9keX07CiAgICBteSAkU2lnbmF0dXJlICA9ICREYXRhe1NpZ25hdHVyZX07CgogICAgbXkgJFJlc3BvbnNlRm9ybWF0CiAgICAgICAgPSAiJFNhbHV0YXRpb24gXG4gJE9yaWdGcm9tICRXcm90ZTogXG4gJEJvZHkgXG4gJFNpZ25hdHVyZSBcbiI7CgogICAgIyByZXN0b3JlIHFkYXRhIGZvcm1hdHRpbmcgZm9yIE91dHB1dCByZXBsYWNlbWVudAogICAgJFJlc3BvbnNlRm9ybWF0ID1+IHMvJnF1b3Q7LyIvZ2k7CgogICAgIyBwcmVwYXJlIHN1YmplY3QKICAgIG15ICRUbiA9ICRTZWxmLT57VGlja2V0T2JqZWN0fS0+VGlja2V0TnVtYmVyTG9va3VwKCBUaWNrZXRJRCA9PiAkUGFyYW17VGlja2V0SUR9ICk7CiAgICAkUGFyYW17U3ViamVjdH0gPSAkU2VsZi0+e1RpY2tldE9iamVjdH0tPlRpY2tldFN1YmplY3RCdWlsZCgKICAgICAgICBUaWNrZXROdW1iZXIgPT4gJFRuLAogICAgICAgIFN1YmplY3QgPT4gJFBhcmFte1N1YmplY3R9IHx8ICcnLAogICAgKTsKCiAgICAjIGNoZWNrIHNvbWUgdmFsdWVzCiAgICBmb3IgbXkgJExpbmUgKHF3KFRvIENjIEJjYykpIHsKICAgICAgICBuZXh0IGlmICEkRGF0YXskTGluZX07CiAgICAgICAgZm9yIG15ICRFbWFpbCAoIE1haWw6OkFkZHJlc3MtPnBhcnNlKCAkRGF0YXskTGluZX0gKSApIHsKICAgICAgICAgICAgaWYgKCAhJFNlbGYtPntDaGVja0l0ZW1PYmplY3R9LT5DaGVja0VtYWlsKCBBZGRyZXNzID0+ICRFbWFpbC0+YWRkcmVzcygpICkgKSB7CiAgICAgICAgICAgICAgICBteSAkU2VydmVyRXJyb3IgPSAkU2VsZi0+e0NoZWNrSXRlbU9iamVjdH0tPkNoZWNrRXJyb3IoKTsKICAgICAgICAgICAgICAgICRTZWxmLT57TG9nT2JqZWN0fS0+TG9nKAogICAgICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIkVycm9yIG9uIGZpZWxkIFwiJExpbmVcIiBcbiAkU2VydmVyRXJyb3IiLAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KICAgIGlmICggJERhdGF7RnJvbX0gKSB7CiAgICAgICAgZm9yIG15ICRFbWFpbCAoIE1haWw6OkFkZHJlc3MtPnBhcnNlKCAkRGF0YXtGcm9tfSApICkgewogICAgICAgICAgICBpZiAoICEkU2VsZi0+e0NoZWNrSXRlbU9iamVjdH0tPkNoZWNrRW1haWwoIEFkZHJlc3MgPT4gJEVtYWlsLT5hZGRyZXNzKCkgKSApIHsKICAgICAgICAgICAgICAgIG15ICRTZXJ2ZXJFcnJvciA9ICRTZWxmLT57Q2hlY2tJdGVtT2JqZWN0fS0+Q2hlY2tFcnJvcigpOwogICAgICAgICAgICAgICAgJFNlbGYtPntMb2dPYmplY3R9LT5Mb2coCiAgICAgICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiRXJyb3Igb24gZmllbGQgXCJGcm9tXCIgIFxuICRTZXJ2ZXJFcnJvciIsCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgICVDb21wb3NlRGF0YSA9ICgKICAgICAgICBGcm9tICAgID0+ICREYXRhe0Zyb219LAogICAgICAgIFRvICAgICAgPT4gJERhdGF7VG99LAogICAgICAgIENjICAgICAgPT4gJERhdGF7Q2N9LAogICAgICAgIEJjYyAgICAgPT4gJERhdGF7QmNjfSwKICAgICAgICBSZXBseVRvID0+ICREYXRhe1JlcGx5VG99LAogICAgICAgIFN1YmplY3QgPT4gJERhdGF7U3ViamVjdH0sCiAgICAgICAgQm9keSAgICA9PiAkUmVzcG9uc2VGb3JtYXQsCiAgICApOwogICAgcmV0dXJuICVDb21wb3NlRGF0YTsKfQoKc3ViIF9UcmFuc2Zvcm1EYXRlU2VsZWN0aW9uIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyB0aW1lIHpvbmUgdHJhbnNsYXRpb24gaWYgbmVlZGVkCiAgICBpZiAoICRTZWxmLT57Q29uZmlnT2JqZWN0fS0+R2V0KCdUaW1lWm9uZVVzZXInKSAmJiAkU2VsZi0+e1VzZXJUaW1lWm9uZX0gKSB7CiAgICAgICAgbXkgJFN5c3RlbVRpbWUgPSAkU2VsZi0+e1RpbWVPYmplY3R9LT5UaW1lU3RhbXAyU3lzdGVtVGltZSgKICAgICAgICAgICAgU3RyaW5nID0+ICRQYXJhbXtUaW1lU3RhbXB9LAogICAgICAgICk7CiAgICAgICAgJFN5c3RlbVRpbWUgPSAkU3lzdGVtVGltZSAtICggJFNlbGYtPntVc2VyVGltZVpvbmV9ICogMzYwMCApOwogICAgICAgICRQYXJhbXtUaW1lU3RhbXB9CiAgICAgICAgICAgID0gJFNlbGYtPntVc2VyVGltZU9iamVjdH0tPlN5c3RlbVRpbWUyVGltZVN0YW1wKCBTeXN0ZW1UaW1lID0+ICRTeXN0ZW1UaW1lLCApOwogICAgfQogICAgcmV0dXJuICRQYXJhbXtUaW1lU3RhbXB9Owp9CgoxOwoKPWJhY2sKCj1oZWFkMSBURVJNUyBBTkQgQ09ORElUSU9OUwoKVGhpcyBzb2Z0d2FyZSBpcyBwYXJ0IG9mIHRoZSBPVFJTIHByb2plY3QgKEw8aHR0cDovL290cnMub3JnLz4pLgoKVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoQUdQTCkuIElmIHlvdQpkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgTDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvYWdwbC50eHQ+LgoKPWN1dAo=
JVBERi0xLjQKJaqrrK0KNCAwIG9iago8PAovUHJvZHVjZXIgKEFwYWNoZSBGT1AgVmVyc2lvbiAwLjk1KQovQ3JlYXRpb25EYXRlIChEOjIwMTMwOTI1MDAxNzUwKzAyJzAwJykKPj4KZW5kb2JqCjUgMCBvYmoKPDwKICAvTiAzCiAgL0xlbmd0aCAxMiAwIFIKICAvRmlsdGVyIC9GbGF0ZURlY29kZQo+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+MjAxMy0wOS0yNVQwMDoxNzo1MCswMjowMDwvcmRmOmxpPgo8L3JkZjpTZXE+CjwvZGM6ZGF0ZT4KPC9yZGY6RGVzY3JpcHRpb24+CjxyZGY6RGVzY3JpcHRpb24geG1sbnM6cGRmPSJodHRwOi8vbnMuYWRvYmUuY29tL3BkZi8xLjMvIiByZGY6YWJvdXQ9IiI+CjxwZGY6UERGVmVyc2lvbj4xLjQ8L3BkZjpQREZWZXJzaW9uPgo8cGRmOlByb2R1Y2VyPkFwYWNoZSBGT1AgVmVyc2lvbiAwLjk1PC9wZGY6UHJvZHVjZXI+CjwvcmRmOkRlc2NyaXB0aW9uPgo8cmRmOkRlc2NyaXB0aW9uIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgcmRmOmFib3V0PSIiPgo8eG1wOkNyZWF0ZURhdGU+MjAxMy0wOS0yNVQwMDoxNzo1MCswMjowMDwv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Ci9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA2MCAwIFIKL0ggL0kKCj4+CmVuZG9iago2MyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzEuMzE2MDQgNjc5LjYyOSA1MzkuOTk2MDMgNjg5LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA2MCAwIFIKL0ggL0kKCj4+CmVuZG9iago2NSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA4MC4wIDY2Ny42MjkgMTUzLjY0OSA2NzcuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDY0IDAgUgovSCAvSQoKPj4KZW5kb2JqCjY2IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy40OTIgNjY3LjYyOSA1MzkuODUyIDY3Ny42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNjQgMCBSCi9IIC9JCgo+PgplbmRvYmoKNjggMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNjU1LjYyOSAxNTUuMDQ5IDY2NS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNjcgMCBSCi9IIC9JCgo+PgplbmRvYmoKNjkgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjU2IDY1NS42MjkgNTM5LjkyIDY2NS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNjcgMCBSCi9IIC9JCgo+PgplbmRvYmoKNzEgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNjQzLjYyOSAxODQuOTU0MDEgNjUzLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA3MCAwIFIKL0ggL0kKCj4+CmVuZG9iago3MiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNDg1OTYgNjQzLjYyOSA1MzkuODQ2IDY1My42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNzAgMCBSCi9IIC9JCgo+PgplbmRvYmoKNzQgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTI4LjAgNjMxLjYyOSAyMTIuMzE5IDY0MS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNzMgMCBSCi9IIC9JCgo+PgplbmRvYmoKNzUgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjQ3MyA2MzEuNjI5IDUzOS44MzMgNjQxLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA3MyAwIFIKL0ggL0kKCj4+CmVuZG9iago3NyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMjguMCA2MTkuNjI5IDIxMS4zMjggNjI5LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA3NiAwIFIKL0ggL0kKCj4+CmVuZG9iago3OCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNDc1IDYxOS42MjkgNTM5LjgzNSA2MjkuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDc2IDAgUgovSCAvSQoKPj4KZW5kb2JqCjgwIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEyOC4wIDYwNy42MjkgMjMwLjQ3OCA2MTcuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDc5IDAgUgovSCAvSQoKPj4KZW5kb2JqCjgxIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy40NzUgNjA3LjYyOSA1MzkuODM1IDYxNy42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNzkgMCBSCi9IIC9JCgo+PgplbmRvYmoKODMgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTI4LjAgNTk1LjYyOSAyMjMuMCA2MDUuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDgyIDAgUgovSCAvSQoKPj4KZW5kb2JqCjg0IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy40NzQgNTk1LjYyOSA1MzkuODM0IDYwNS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgODIgMCBSCi9IIC9JCgo+PgplbmRvYmoKODYgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTI4LjAgNTgzLjYyOSAyMTQuNDAyMDEgNTkzLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA4NSAwIFIKL0ggL0kKCj4+CmVuZG9iago4NyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNDc0IDU4My42MjkgNTM5LjgzNCA1OTMuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDg1IDAgUgovSCAvSQoKPj4KZW5kb2JqCjg5IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEyOC4wIDU3MS42MjkgMjM5LjEyNSA1ODEuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDg4IDAgUgovSCAvSQoKPj4KZW5kb2JqCjkwIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy40NzMgNTcxLjYyOSA1MzkuODMzIDU4MS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgODggMCBSCi9IIC9JCgo+PgplbmRvYmoKOTIgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNTU5LjYyOSAxODguMzQ3IDU2OS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgOTEgMCBSCi9IIC9JCgo+PgplbmRvYmoKOTMgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjQ4NSA1NTkuNjI5IDUzOS44NDUgNTY5LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA5MSAwIFIKL0ggL0kKCj4+CmVuZG9iago5NSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMjguMCA1NDcuNjI5IDIxNi4yNTcgNTU3LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA5NCAwIFIKL0ggL0kKCj4+CmVuZG9iago5NiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNDc0IDU0Ny42MjkgNTM5LjgzNCA1NTcuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDk0IDAgUgovSCAvSQoKPj4KZW5kb2JqCjk4IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEyOC4wIDUzNS42MjkgMjA5LjAyNzAxIDU0NS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgOTcgMCBSCi9IIC9JCgo+PgplbmRvYmoKOTkgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjQ3MyA1MzUuNjI5IDUzOS44MzMgNTQ1LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA5NyAwIFIKL0ggL0kKCj4+CmVuZG9iagoxMDEgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTI4LjAgNTIzLjYyOSAyMTIuNTQ4IDUzMy42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTAwIDAgUgovSCAvSQoKPj4KZW5kb2JqCjEwMiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNDc1IDUyMy42MjkgNTM5LjgzNSA1MzMuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDEwMCAwIFIKL0ggL0kKCj4+CmVuZG9iagoxMDQgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTI4LjAgNTExLjYyOSAyMzEuODA3IDUyMS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTAzIDAgUgovSCAvSQoKPj4KZW5kb2JqCjEwNSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNDc0IDUxMS42MjkgNTM5LjgzNCA1MjEuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDEwMyAwIFIKL0ggL0kKCj4+CmVuZG9iagoxMDcgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTI4LjAgNDk5LjYyOSAyMTIuMTMxIDUwOS42MTkwMiBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxMDYgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTA4IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy40NzMgNDk5LjYyOSA1MzkuODMzIDUwOS42MTkwMiBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxMDYgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTEwIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDgwLjAgNDg3LjYyOSAyMDQuNzY5IDQ5Ny42MTkwMiBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxMDkgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTExIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy40OTA5NyA0ODcuNjI5IDUzOS44NTEgNDk3LjYxOTAyIF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDEwOSAwIFIKL0ggL0kKCj4+CmVuZG9iagoxMTMgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNDc1LjYyOSAxNzMuMjk3IDQ4NS42MTkwMiBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxMTIgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTE0IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy41NTg5NiA0NzUuNjI5IDUzOS45MTkgNDg1LjYxOTAyIF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDExMiAwIFIKL0ggL0kKCj4+CmVuZG9iagoxMTYgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNDYzLjYyOSAxNjQuNjMxIDQ3My42MTkwMiBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxMTUgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTE3IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy41NTg5NiA0NjMuNjI5IDUzOS45MTkgNDczLjYxOTAyIF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDExNSAwIFIKL0ggL0kKCj4+CmVuZG9iagoxMTkgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNDUxLjYyOSAyMDkuMzMyIDQ2MS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTE4IDAgUgovSCAvSQoKPj4KZW5kb2JqCjEyMCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNDg1OTYgNDUxLjYyOSA1MzkuODQ2IDQ2MS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTE4IDAgUgovSCAvSQoKPj4KZW5kb2JqCjEyMiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA0MzkuNjI5IDIyMS40NjUgNDQ5LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxMjEgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTIzIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy40MDkgNDM5LjYyOSA1MzkuNzY5IDQ0OS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTIxIDAgUgovSCAvSQoKPj4KZW5kb2JqCjEyNSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA4MC4wIDQyNy42MjkgMTQ5LjI4NSA0MzcuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDEyNCAwIFIKL0ggL0kKCj4+CmVuZG9iagoxMjYgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjU2Mzk2IDQyNy42MjkgNTM5LjkyNCA0MzcuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDEyNCAwIFIKL0ggL0kKCj4+CmVuZG9iagoxMjggMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNDE1LjYyOSAxOTguNzg1IDQyNS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTI3IDAgUgovSCAvSQoKPj4KZW5kb2JqCjEyOSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNDg1IDQxNS42MjkgNTM5Ljg0NSA0MjUuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDEyNyAwIFIKL0ggL0kKCj4+CmVuZG9iagoxMzEgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNDAzLjYyOSAxOTQuNDE5IDQxMy42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTMwIDAgUgovSCAvSQoKPj4KZW5kb2JqCjEzMiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNDg0IDQwMy42MjkgNTM5Ljg0NCA0MTMuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDEzMCAwIFIKL0ggL0kKCj4+CmVuZG9iagoxMzQgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgODAuMCAzOTEuNjI5IDE0Ny40MzUgNDAxLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxMzMgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTM1IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy40OTIgMzkxLjYyOSA1MzkuODUyIDQwMS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTMzIDAgUgovSCAvSQoKPj4KZW5kb2JqCjEzNyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCAzNzkuNjI5IDI0Mi40NTMgMzg5LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxMzYgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTM4IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy4zMzQgMzc5LjYyOSA1MzkuNjk0MDMgMzg5LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxMzYgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTQwIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDM2Ny42MjkgMjQ0LjYyOSAzNzcuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDEzOSAwIFIKL0ggL0kKCj4+CmVuZG9iagoxNDEgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjMzNDk2IDM2Ny42MjkgNTM5LjY5NSAzNzcuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDEzOSAwIFIKL0ggL0kKCj4+CmVuZG9iagoxNDMgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgODAuMCAzNTUuNjI5IDE2MS42NzkgMzY1LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxNDIgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTQ0IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy41NjM5NiAzNTUuNjI5IDUzOS45MjQgMzY1LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxNDIgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTQ2IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDM0My42MjkgMjEyLjEzNTAxIDM1My42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTQ1IDAgUgovSCAvSQoKPj4KZW5kb2JqCjE0NyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNTYxMDQgMzQzLjYyOSA1MzkuOTIxIDM1My42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTQ1IDAgUgovSCAvSQoKPj4KZW5kb2JqCjE0OSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCAzMzEuNjI5IDE5Ni4wNTggMzQxLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxNDggMCBSCi9IIC9JCgo+PgplbmRvYmoKMTUwIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy41NiAzMzEuNjI5IDUzOS45MiAzNDEuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE0OCAwIFIKL0ggL0kKCj4+CmVuZG9iagoxNTIgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgMzE5LjYyOSAzNzkuMzI3IDMyOS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTUxIDAgUgovSCAvSQoKPj4KZW5kb2JqCjE1MyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNTU4OTYgMzE5LjYyOSA1MzkuOTE5IDMyOS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTUxIDAgUgovSCAvSQoKPj4KZW5kb2JqCjE1NSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCAzMDcuNjI5IDM2My43ODggMzE3LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxNTQgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTU2IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy41NTg5NiAzMDcuNjI5IDUzOS45MTkgMzE3LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxNTQgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTU4IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDI5NS42MjkgMzU4LjYwOSAzMDUuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE1NyAwIFIKL0ggL0kKCj4+CmVuZG9iagoxNTkgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjU2IDI5NS42MjkgNTM5LjkyIDMwNS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTU3IDAgUgovSCAvSQoKPj4KZW5kb2JqCjE2MSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCAyODMuNjI5IDM4Ni42MzkgMjkzLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxNjAgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTYyIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy41NjEwNCAyODMuNjI5IDUzOS45MjEgMjkzLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxNjAgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTY0IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDI3MS42MjkgMzg1Ljk2MSAyODEuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE2MyAwIFIKL0ggL0kKCj4+CmVuZG9iagoxNjUgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjU1ODk2IDI3MS42MjkgNTM5LjkxOSAyODEuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE2MyAwIFIKL0ggL0kKCj4+CmVuZG9iagoxNjcgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgMjU5LjYyOSAzNTMuMzU5IDI2OS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTY2IDAgUgovSCAvSQoKPj4KZW5kb2JqCjE2OCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNTU4OTYgMjU5LjYyOSA1MzkuOTE5IDI2OS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTY2IDAgUgovSCAvSQoKPj4KZW5kb2JqCjE3MCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCAyNDcuNjI4OTggMzg5LjcyNyAyNTcuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE2OSAwIFIKL0ggL0kKCj4+CmVuZG9iagoxNzEgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjU2MTA0IDI0Ny42Mjg5OCA1MzkuOTIxIDI1Ny42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTY5IDAgUgovSCAvSQoKPj4KZW5kb2JqCjE3MyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCAyMzUuNjI4OTggNDA1LjEzNiAyNDUuNjE4OTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTcyIDAgUgovSCAvSQoKPj4KZW5kb2JqCjE3NCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNTYgMjM1LjYyODk4IDUzOS45MiAyNDUuNjE4OTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTcyIDAgUgovSCAvSQoKPj4KZW5kb2JqCjE3NiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCAyMjMuNjI4OTggNDI0LjUgMjMzLjYxODk5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE3NSAwIFIKL0ggL0kKCj4+CmVuZG9iagoxNzcgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjU2MTA0IDIyMy42Mjg5OCA1MzkuOTIxIDIzMy42MTg5OSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxNzUgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTc5IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDIxMS42Mjg5OCAzOTEuNDkgMjIxLjYxODk5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE3OCAwIFIKL0ggL0kKCj4+CmVuZG9iagoxODAgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjU2MTA0IDIxMS42Mjg5OCA1MzkuOTIxIDIyMS42MTg5OSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxNzggMCBSCi9IIC9JCgo+PgplbmRvYmoKMTgyIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDE5OS42Mjg5OCAzODMuMTQyIDIwOS42MTg5OSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxODEgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTgzIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy41NTg5NiAxOTkuNjI4OTggNTM5LjkxOSAyMDkuNjE4OTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTgxIDAgUgovSCAvSQoKPj4KZW5kb2JqCjE4NSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCAxODcuNjI5MDEgMzkxLjU5OSAxOTcuNjE5MDIgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTg0IDAgUgovSCAvSQoKPj4KZW5kb2JqCjE4NiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNTYgMTg3LjYyOTAxIDUzOS45MiAxOTcuNjE5MDIgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTg0IDAgUgovSCAvSQoKPj4KZW5kb2JqCjE4OCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCAxNzUuNjI5MDEgNDE3LjUxNyAxODUuNjE5MDIgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTg3IDAgUgovSCAvSQoKPj4KZW5kb2JqCjE4OSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNTU4OTYgMTc1LjYyOTAxIDUzOS45MTkgMTg1LjYxOTAyIF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE4NyAwIFIKL0ggL0kKCj4+CmVuZG9iagoxOTEgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgMTYzLjYyOTAxIDM3OS43NjYgMTczLjYxOTAyIF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE5MCAwIFIKL0ggL0kKCj4+CmVuZG9iagoxOTIgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjU2MTA0IDE2My42MjkwMSA1MzkuOTIxIDE3My42MTkwMiBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxOTAgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTk0IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDE1MS42MjkwMSA0MDAuMjA1IDE2MS42MTkwMiBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxOTMgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTk1IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy41NTg5NiAxNTEuNjI5MDEgNTM5LjkxOSAxNjEuNjE5MDIgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTkzIDAgUgovSCAvSQoKPj4KZW5kb2JqCjE5NyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCAxMzkuNjI5MDEgMzkzLjA5MyAxNDkuNjE5MDIgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTk2IDAgUgovSCAvSQoKPj4KZW5kb2JqCjE5OCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNTU4OTYgMTM5LjYyOTAxIDUzOS45MTkgMTQ5LjYxOTAyIF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE5NiAwIFIKL0ggL0kKCj4+CmVuZG9iagoyMDAgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgMTI3LjYyOTAyIDM3OC40MDEgMTM3LjYxOTAyIF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE5OSAwIFIKL0ggL0kKCj4+CmVuZG9iagoyMDEgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjU2IDEyNy42MjkwMiA1MzkuOTIgMTM3LjYxOTAyIF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE5OSAwIFIKL0ggL0kKCj4+CmVuZG9iagoyMDMgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgMTE1LjYyOTAyIDM2Mi44NjIgMTI1LjYxOTAyIF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDIwMiAwIFIKL0ggL0kKCj4+CmVuZG9iagoyMDQgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjU2IDExNS42MjkwMiA1MzkuOTIgMTI1LjYxOTAyIF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDIwMiAwIFIKL0ggL0kKCj4+CmVuZG9iagoyMDYgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgMTAzLjYyOTAyIDM1Ny42ODIgMTEzLjYxOTAyIF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDIwNSAwIFIKL0ggL0kKCj4+CmVuZG9iagoyMDcgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjU1ODk2IDEwMy42MjkwMiA1MzkuOTE5IDExMy42MTkwMiBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyMDUgMCBSCi9IIC9JCgo+PgplbmRvYmoKMjA5IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDkxLjYyOTAyIDM4NS43MTIgMTAxLjYxOTAyIF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDIwOCAwIFIKL0ggL0kKCj4+CmVuZG9iagoyMTAgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjU1ODk2IDkxLjYyOTAyIDUzOS45MTkgMTAxLjYxOTAyIF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDIwOCAwIFIKL0ggL0kKCj4+CmVuZG9iagoyMTIgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNzkuNjI5MDIgMzUyLjQzMjk4IDg5LjYxOTAyIF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDIxMSAwIFIKL0ggL0kKCj4+CmVuZG9iagoyMTMgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjU2IDc5LjYyOTAyIDUzOS45MiA4OS42MTkwMiBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyMTEgMCBSCi9I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PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA3MDkuMDA1IDM3NS4yOTMgNzE4Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyMzQgMCBSCi9IIC9JCgo+PgplbmRvYmoKMjM3IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy41NTg5NiA3MDkuMDA1IDUzOS45MTkgNzE4Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyMzQgMCBSCi9IIC9JCgo+PgplbmRvYmoKMjM5IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDY5Ny4wMDUgMzg4LjggNzA2Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyMzggMCBSCi9IIC9JCgo+PgplbmRvYmoKMjQwIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy41NiA2OTcuMDA1IDUzOS45MiA3MDYuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDIzOCAwIFIKL0ggL0kKCj4+CmVuZG9iagoyNDIgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNjg1LjAwNSAzNDkuNjU0IDY5NC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjQxIDAgUgovSCAvSQoKPj4KZW5kb2JqCjI0MyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNTYgNjg1LjAwNSA1MzkuOTIgNjk0Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyNDEgMCBSCi9IIC9JCgo+PgplbmRvYmoKMjQ1IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDY3My4wMDUgMzYzLjI4IDY4Mi45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjQ0IDAgUgovSCAvSQoKPj4KZW5kb2JqCjI0NiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNTU4OTYgNjczLjAwNSA1MzkuOTE5IDY4Mi45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjQ0IDAgUgovSCAvSQoKPj4KZW5kb2JqCjI0OCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA2NjEuMDA1IDM0OS43OTMgNjcwLjk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyNDcgMCBSCi9IIC9JCgo+PgplbmRvYmoKMjQ5IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy41NTg5NiA2NjEuMDA1IDUzOS45MTkgNjcwLjk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyNDcgMCBSCi9IIC9JCgo+PgplbmRvYmoKMjUxIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDY0OS4wMDUgNDE3LjIzOCA2NTguOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDI1MCAwIFIKL0ggL0kKCj4+CmVuZG9iagoyNTIgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjU1ODk2IDY0OS4wMDUgNTM5LjkxOSA2NTguOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDI1MCAwIFIKL0ggL0kKCj4+CmVuZG9iagoyNTQgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNjM3LjAwNSAzODYuMDUxIDY0Ni45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjUzIDAgUgovSCAvSQoKPj4KZW5kb2JqCjI1NSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNTYgNjM3LjAwNSA1MzkuOTIgNjQ2Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyNTMgMCBSCi9IIC9JCgo+PgplbmRvYmoKMjU3IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDYyNS4wMDUgMzYwLjA5MyA2MzQuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDI1NiAwIFIKL0ggL0kKCj4+CmVuZG9iagoyNTggMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjU2IDYyNS4wMDUgNTM5LjkyIDYzNC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjU2IDAgUgovSCAvSQoKPj4KZW5kb2JqCjI2MCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA2MTMuMDA1IDM5Ny44NzQgNjIyLjk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyNTkgMCBSCi9IIC9JCgo+PgplbmRvYmoKMjYxIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy41NTg5NiA2MTMuMDA1IDUzOS45MTkgNjIyLjk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyNTkgMCBSCi9IIC9JCgo+PgplbmRvYmoKMjYzIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDYwMS4wMDUgMzQ3LjQxMyA2MTAuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDI2MiAwIFIKL0ggL0kKCj4+CmVuZG9iagoyNjQgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjU2IDYwMS4wMDUgNTM5LjkyIDYxMC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjYyIDAgUgovSCAvSQoKPj4KZW5kb2JqCjI2NiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA1ODkuMDA1IDM3NS44ODEgNTk4Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyNjUgMCBSCi9IIC9JCgo+PgplbmRvYmoKMjY3IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy41NiA1ODkuMDA1IDUzOS45MiA1OTguOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDI2NSAwIFIKL0ggL0kKCj4+CmVuZG9iagoyNjkgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNTc3LjAwNSAzODQuMzM4IDU4Ni45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjY4IDAgUgovSCAvSQoKPj4KZW5kb2JqCjI3MCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNTYxMDQgNTc3LjAwNSA1MzkuOTIxIDU4Ni45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjY4IDAgUgovSCAvSQoKPj4KZW5kb2JqCjI3MiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA1NjUuMDA1IDQxMC4yNTYgNTc0Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyNzEgMCBSCi9IIC9JCgo+PgplbmRvYmoKMjczIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy41NjEwNCA1NjUuMDA1IDUzOS45MjEgNTc0Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyNzEgMCBSCi9IIC9JCgo+PgplbmRvYmoKMjc1IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDU1My4wMDUgMzkyLjk0NCA1NjIuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDI3NCAwIFIKL0ggL0kKCj4+CmVuZG9iagoyNzYgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjU2IDU1My4wMDUgNTM5LjkyIDU2Mi45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjc0IDAgUgovSCAvSQoKPj4KZW5kb2JqCjI3OCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA1NDEuMDA1IDM4My4zMDIgNTUwLjk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyNzcgMCBSCi9IIC9JCgo+PgplbmRvYmoKMjc5IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy41NjEwNCA1NDEuMDA1IDUzOS45MjEgNTUwLjk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyNzcgMCBSCi9IIC9JCgo+PgplbmRvYmoKMjgxIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDUyOS4wMDUgMzk2LjYyOSA1MzguOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDI4MCAwIFIKL0ggL0kKCj4+CmVuZG9iagoyODIgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjU1ODk2IDUyOS4wMDUgNTM5LjkxOSA1MzguOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDI4MCAwIFIKL0ggL0kKCj4+CmVuZG9iagoyODQgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNTE3LjAwNSAzODEuOTM3IDUyNi45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjgzIDAgUgovSCAvSQoKPj4KZW5kb2JqCjI4NSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNTYgNTE3LjAwNSA1MzkuOTIgNTI2Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyODMgMCBSCi9IIC9JCgo+PgplbmRvYmoKMjg3IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDUwNS4wMDUgMzY2LjM5OCA1MTQuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDI4NiAwIFIKL0ggL0kKCj4+CmVuZG9iagoyODggMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjU1ODk2IDUwNS4wMDUgNTM5LjkxOSA1MTQuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDI4NiAwIFIKL0ggL0kKCj4+CmVuZG9iagoyOTAgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNDkzLjAwNSAzNjEuMjE5IDUwMi45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjg5IDAgUgovSCAvSQoKPj4KZW5kb2JqCjI5MSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNTYxMDQgNDkzLjAwNSA1MzkuOTIxIDUwMi45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjg5IDAgUgovSCAvSQoKPj4KZW5kb2JqCjI5MyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA0ODEuMDA1IDM4OS4yNDggNDkwLjk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyOTIgMCBSCi9IIC9JCgo+PgplbmRvYmoKMjk0IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy41NTg5NiA0ODEuMDA1IDUzOS45MTkgNDkwLjk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyOTIgMCBSCi9IIC9JCgo+PgplbmRvYmoKMjk2IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDQ2OS4wMDUgMzU1Ljk2OSA0NzguOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDI5NSAwIFIKL0ggL0kKCj4+CmVuZG9iagoyOTcgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjU1ODk2IDQ2OS4wMDUgNTM5LjkxOSA0NzguOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDI5NSAwIFIKL0ggL0kKCj4+CmVuZG9iagoyOTkgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNDU3LjAwNSAzNzguODI5IDQ2Ni45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjk4IDAgUgovSCAvSQoKPj4KZW5kb2JqCjMwMCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNTU4OTYgNDU3LjAwNSA1MzkuOTE5IDQ2Ni45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjk4IDAgUgovSCAvSQoKPj4KZW5kb2JqCjMwMiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA0NDUuMDA1IDM5Mi4zMzYgNDU0Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAzMDEgMCBSCi9IIC9JCgo+PgplbmRvYmoKMzAzIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy41NTg5NiA0NDUuMDA1IDUzOS45MTkgNDU0Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAzMDEgMCBSCi9IIC9JCgo+PgplbmRvYmoKMzA1IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDQzMy4wMDUgMzUzLjE5IDQ0Mi45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMzA0IDAgUgovSCAvSQoKPj4KZW5kb2JqCjMwNiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MjcuMjI1IDQzMy4wMDUgNTM5Ljk0NSA0NDIuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDMwNCAwIFIKL0ggL0kKCj4+CmVuZG9iagozMDggMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNDIxLjAwNSAzNjYuODE3IDQzMC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMzA3IDAgUgovSCAvSQoKPj4KZW5kb2JqCjMwOSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MjcuMjI2IDQyMS4wMDUgNTM5Ljk0NiA0MzAuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDMwNyAwIFIKL0ggL0kKCj4+CmVuZG9iagozMTEgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNDA5LjAwNSAzNTMuMzMwMDIgNDE4Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAzMTAgMCBSCi9IIC9JCgo+PgplbmRvYmoKMzEyIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUyNy4yMjYgNDA5LjAwNSA1MzkuOTQ2IDQxOC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMzEwIDAgUgovSCAvSQoKPj4KZW5kb2JqCjMxNCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCAzOTcuMDA1IDQyMC43NzQgNDA2Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAzMTMgMCBSCi9IIC9JCgo+PgplbmRvYmoKMzE1IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUyNy4yMjQgMzk3LjAwNSA1MzkuOTQ0IDQwNi45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMzEzIDAgUgovSCAvSQoKPj4KZW5kb2JqCjMxNyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCAzODUuMDA1IDM4OS41ODcgMzk0Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAzMTYgMCBSCi9IIC9JCgo+PgplbmRvYmoKMzE4IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUyNy4yMjUgMzg1LjAwNSA1MzkuOTQ1IDM5NC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMzE2IDAgUgovSCAvSQoKPj4KZW5kb2JqCjMyMCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCAzNzMuMDA1IDM2My42MjkgMzgyLjk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAzMTkgMCBSCi9IIC9JCgo+PgplbmRvYmoKMzIxIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUyNy4yMjUgMzczLjAwNSA1MzkuOTQ1IDM4Mi45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMzE5IDAgUgovSCAvSQoKPj4KZW5kb2JqCjMyMyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCAzNjEuMDA1IDQwMS40MTEgMzcwLjk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAzMjIgMCBSCi9IIC9JCgo+PgplbmRvYmoKMzI0IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUyNy4yMjYgMzYxLjAwNSA1MzkuOTQ2IDM3MC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMzIyIDAgUgovSCAvSQoKPj4KZW5kb2JqCjMyNiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCAzNDkuMDA1IDM1MC45NDkgMzU4Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAzMjUgMCBSCi9IIC9JCgo+PgplbmRvYmoKMzI3IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUyNy4yMjUgMzQ5LjAwNSA1MzkuOTQ1IDM1OC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMzI1IDAgUgovSCAvSQoKPj4KZW5kb2JqCjMyOSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCAzMzcuMDA1IDM3OS40MTcgMzQ2Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAzMjggMCBSCi9IIC9JCgo+PgplbmRvYmoKMzMwIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUyNy4yMjUgMzM3LjAwNSA1MzkuOTQ1IDM0Ni45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMzI4IDAgUgovSCAvSQoKPj4KZW5kb2JqCjMzMiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCAzMjUuMDA1IDM4Ny44NzQgMzM0Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAzMzEgMCBSCi9IIC9JCgo+PgplbmRvYmoKMzMzIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUyNy4yMjYgMzI1LjAwNSA1MzkuOTQ2IDMzNC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMzMxIDAgUgovSCAvSQoKPj4KZW5kb2JqCjMzNSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCAzMTMuMDA1IDQxMy43OTIgMzIyLjk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAzMzQgMCBSCi9IIC9JCgo+PgplbmRvYmoKMzM2IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUyNy4yMjUgMzEzLjAwNSA1MzkuOTQ1IDMyMi45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMzM0IDAgUgovSCAvSQoKPj4KZW5kb2JqCjMzOCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCAzMDEuMDA1IDM5Ni40OCAzMTAuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDMzNyAwIFIKL0ggL0kKCj4+CmVuZG9iagozMzkgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTI3LjIyNSAzMDEuMDA1IDUzOS45NDUgMzEwLjk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAzMzcgMCBSCi9IIC9JCgo+PgplbmRvYmoKMzQxIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDI4OS4wMDUgNDAyLjY0NiAyOTguOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDM0MCAwIFIKL0ggL0kKCj4+CmVuZG9iagozNDIgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTI3LjIyNiAyODkuMDA1IDUzOS45NDYgMjk4Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAzNDAgMCBSCi9IIC9JCgo+PgplbmRvYmoKMzQ0IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDI3Ny4wMDUgNDE1Ljk3MyAyODYuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDM0MyAwIFIKL0ggL0kKCj4+CmVuZG9iagozNDUgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTI3LjIyNCAyNzcuMDA1IDUzOS45NDQgMjg2Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAzNDMgMCBSCi9IIC9JCgo+PgplbmRvYmoKMzQ3IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDI2NS4wMDUgMzc1LjMxMyAyNzQuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDM0NiAwIFIKL0ggL0kKCj4+CmVuZG9iagozNDggMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTI3LjIyNCAyNjUuMDA1IDUzOS45NDQgMjc0Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAzNDYgMCBSCi9IIC9JCgo+PgplbmRvYmoKMzUwIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDI1My4wMDQ5OSA0MTEuNjggMjYyLjk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAzNDkgMCBSCi9IIC9JCgo+PgplbmRvYmoKMzUxIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUyNy4yMjQgMjUzLjAwNDk5IDUzOS45NDQgMjYyLjk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAzNDkgMCBSCi9IIC9JCgo+PgplbmRvYmoKMzUzIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDI0MS4wMDQ5OSAzOTguMTczIDI1MC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMzUyIDAgUgovSCAvSQoKPj4KZW5kb2JqCjM1NCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MjcuMjI0IDI0MS4wMDQ5OSA1MzkuOTQ0IDI1MC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMzUyIDAgUgovSCAvSQoKPj4KZW5kb2JqCjM1NiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCAyMjkuMDA0OTkgMzcyLjMwNSAyMzguOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDM1NSAwIFIKL0ggL0kKCj4+CmVuZG9iagozNTcgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTI3LjIyNSAyMjkuMDA0OTkgNTM5Ljk0NSAyMzguOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDM1NSAwIFIKL0ggL0kKCj4+CmVuZG9iagozNTkgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgMjE3LjAwNDk5IDM3OS4zMjcgMjI2Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAzNTggMCBSCi9IIC9JCgo+PgplbmRvYmoKMzYwIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUyNy4yMjQgMjE3LjAwNDk5IDUzOS45NDQgMjI2Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAzNTggMCBSCi9IIC9JCgo+PgplbmRvYmoKMzYyIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDIwNS4wMDQ5OSAzNjcuODUzIDIxNC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMzYxIDAgUgovSCAvSQoKPj4KZW5kb2JqCjM2MyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MjcuMjI2IDIwNS4wMDQ5OSA1MzkuOTQ2IDIxNC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMzYxIDAgUgovSCAvSQoKPj4KZW5kb2JqCjM2NSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCAxOTMuMDA0OTkgMzk4Ljc2MSAyMDIuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDM2NCAwIFIKL0ggL0kKCj4+CmVuZG9iagozNjYgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTI3LjIyNSAxOTMuMDA0OTkgNTM5Ljk0NSAyMDIuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDM2NCAwIFIKL0ggL0kKCj4+CmVuZG9iagozNjggMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgMTgxLjAwNDk5IDQxNS44MjQgMTkwLjk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAzNjcgMCBSCi9IIC9JCgo+PgplbmRvYmoKMzY5IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUyNy4yMjUgMTgxLjAwNDk5IDUzOS45NDUgMTkwLjk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAzNjcgMCBSCi9IIC9JCgo+PgplbmRvYmoKMzcxIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDE2OS4wMDQ5OSAzODIuODgzIDE3OC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMzcwIDAgUgovSCAvSQoKPj4KZW5kb2JqCjM3MiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MjcuMjI0IDE2OS4wMDQ5OSA1MzkuOTQ0IDE3OC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMzcwIDAgUgovSCAvSQoKPj4KZW5kb2JqCjM3NCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCAxNTcuMDA0OTkgMzk2LjIxMSAxNjYuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDM3MyAwIFIKL0ggL0kKCj4+CmVuZG9iagozNzUgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTI3LjIyNSAxNTcuMDA0OTkgNTM5Ljk0NSAxNjYuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDM3MyAwIFIKL0ggL0kKCj4+CmVuZG9iagozNzcgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgMTQ1LjAwNDk5IDM2MC44IDE1NC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMzc2IDAgUgovSCAvSQoKPj4KZW5kb2JqCjM3OCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MjcuMjI0IDE0NS4wMDQ5OSA1MzkuOTQ0IDE1NC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMzc2IDAgUgovSCAvSQoKPj4KZW5kb2JqCjM4MCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCAxMzMuMDA0OTkgMzU1LjU1MSAxNDIuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDM3OSAwIFIKL0ggL0kKCj4+CmVuZG9iagozODEgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTI3LjIyNSAxMzMuMDA0OTkgNTM5Ljk0NSAxNDIuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDM3OSAwIFIKL0ggL0kKCj4+CmVuZG9iagozODMgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgMTIxLjAwNSAzNzguNDExIDEzMC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMzgyIDAgUgovSCAvSQoKPj4KZW5kb2JqCjM4NCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MjcuMjI1IDEyMS4wMDUgNTM5Ljk0NSAxMzAuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDM4MiAwIFIKL0ggL0kKCj4+CmVuZG9iagozODYgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgMTA5LjAwNSAzOTEuOTE4IDExOC45OTQ5OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMzg1IDAgUgovSCAvSQoKPj4KZW5kb2JqCjM4NyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MjcuMjI1IDEwOS4wMDUgNTM5Ljk0NSAxMTguOTk0OTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDM4NSAwIFIKL0ggL0kKCj4+CmVuZG9iagozODkgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgOTcuMDA1IDM2My4yMTEgMTA2Ljk5NDk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAzODggMCBSCi9IIC9JCgo+PgplbmRvYmoKMzkwIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUyNy4yMjYgOTcuMDA1IDUzOS45NDYgMTA2Ljk5NDk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAzODggMCBSCi9IIC9JCgo+PgplbmRvYmoKMzkyIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDg1LjAwNSA0MDAuOTkyIDk0Ljk5NDk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAzOTEgMCBSCi9IIC9JCgo+PgplbmRvYmoKMzkzIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUyNy4yMjQgODUuMDA1IDUzOS45NDQgOTQuOTk0OTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDM5MSAwIFIKL0ggL0kKCj4+CmVuZG9iagozOTUgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNzMuMDA1IDM3OC45OTkgODIuOTk0OTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDM5NCAwIFIKL0ggL0kKCj4+CmVuZG9iagozOTYgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTI3LjIyNiA3My4wMDUgNTM5Ljk0NiA4Mi45OTQ5OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMzk0IDAgUgovSCAvSQoKPj4KZW5kb2JqCjM5NyAwIG9iago8PCAvTGVuZ3RoIDM5OCAwIFIgL0ZpbHRlciAvRmxhdGVEZWNvZGUgPj4Kc3RyZWFtCnic3Z3NriQ5kl739RT5AuPj/CeBQQFd3dWCtBuoAS2EWekHWkxLGG30+jIz0hhxwz1unuyZluo2Bjldmfd4hF+Gx0ej8TNj+HbK//1dkP/XRvz2X/7807/8FOzfwrcWv6W6/qnUb+k8eqnnGb79+Zv9PRzhtL//s+Avf9vs+lv1n61X2n//H9/+00//86fz27/76T//k6D/9dt5lG//56fz+nZPL/kff/rHp/vUn56/2ft8vtMU4m/4Tv/lp5bn4xDrEUYZY3zr8VtsRzzPMbre+N//+z/Hb3/4X/Z7/ePHZ6XmeNRQPj5D8iekI6T1z/KPRyzy/vrTf/4W5Y1yPs8zXv6q2Mu/FPvV5/++/SXX619f6vWzmMSntxfKcY764T/na+2//cgtfXwJvZ1f/vTT3/9RRiyc3/7039eNyVcxHWkkuTHBy7c//fnbf/4H+T2a//n52z99+9N/+OnXP338bXI4inxbf1ujbc9U1Icj1y4PSP/2v/+bvdS//JTLOX9f/Y8evtUY1vOV/fn68HQ1E6d3Ixa/9aM8jdYfzzP9Tv7kn7/pX9PP3/6u5GOcdotrOMOv8pc/yJ8if+RrcMp/n7/OP2H8rO8oZJRr5db+4Yn7/WTtv8fTNV3eKD39TLj4+5/la+bvqD+Mf5R/KfYvf5hMqPO1/XXT058Y1r//8vS+8pqh2Esk+WKmsC7L68l4jMqZjjiifY0/jM7H4Xi9qB1nCEOewA8X3bx8OI/Q5Q7a90l5pEt4vY87sB4l6i/1fXIcdYTR63fJGI9e4/exeuh4hu+/dRwiiPLbfP+tUzxSU/H8PlmOkuU1v3+fqR8tyGt+/91FEnqXIfr+u2eRphL1Yfgu2Y8Y5TXLd8kSRMaCThvfJfNRqozo99+9tKPJJz++/+71lMdbfqPvv3vNx9nkNcP3SZkIs7xm/i7ZziPLd6h//5vR0lH0O/T9d2/1aPIZBfDu4xjyGY3vv3tPMsdE8Oa9HrEiUejjyAmJwpBw4SSiMMrRGhKF0Y+RiSjkMx7h+w9cPssROxGFfPYjFyIK8mAcNRJRyCEfbRBRyKEdoxJRyFGiykREIcd8pJOIQpYIMTciClnj1ExEIad09EBEIad6jE5EQSKUIxQiCjnLhBWJKOQskc8gopCzzFiViEIuMmMlIgpZBLGncXnqPp3hc5VQsfTXL1785TrRfYsS6I2sEcRTZBXyx8hKfjFdK8iH+sUjq/N3i2vr3/W9+vz5fbDS9NfuN8P0cVxex1Wmh1pV0C4X3oUb6aipqKghuh79hKjME62quBFavpAhF33UEF0PGR95ghEsc0YvqnOE1mWmLlvZjUho02NRvUO0TCBDnxpEy/c01KK6h+hySJinDKLlyynPX2B3Il/p2opqIKLz0XNVHUR0lwVBUS0kdJP5pctrsztpMseUcvsVuqObrA4sYUHoLnONfJYSMCFa5hv5LCVoQrQskiTGDOxOhiyKT3ltdidD5h75Wp7sToasmPRryeAhawcqPBoj9U6FJ5+yfioQlQVUpMKTgyyiBhWeHGQhVaHw5CBrqUSFR0OncVLhyVHWVI0KT46yrspUeHIKsr6gwpOTrK86FZ6cZI1VqPBoSDUiFZ6cs6bAoPDkLOutSoUnF5lUExWeXGRSPanwWJg18u2YfDrTz1DLfnC58DbeSlFDMlW450xW+Rhv1fKVAq3Lzy7DG0XXa0n6Nbz+/usXfrmiyxegaeB7veLm9XuWVYd9fIiWDzskfaQJLdo+etbVHKKzrEDuf9M7uskqJOsjDWj5ZGQlkvSRRrR8AWpWBtESVSYZQXYn4Tzk3/WpR7QEli3rXIpoCSxz0rkU0fLF1OUKu5MokaUupxgsgWXJuvBD9Djke6iLP0ILE+BvmCSqlM8xQFqiSgm3B7uNHI52ZviIiLZ3/UomRktQqTsGFdElHFG+kp19MrLwTfqVZHci2l7kK9nZndTzaJEKT6rJ5w1ES1BZqfBojjEmKjyaZ8wnFR7NNZaGhadJVJmx8PR4jICFp0tU2bHwdAksCxaeEY8csfAMCSwHFp4hkWWlwiP3cIwEhUdzkuGkwqN5ydio8GhuUoI0hsqkGqjwaIKydSo8WYKlUaDwaJ4yRCo8mquUWRgKj+Yrc6XCoznLmqjwaN6yn1R45Pt1DBzxaP4y4IhHc5gJRzyax8w44tFc5rvY7j7QfvNL3geCTwH25YrbAFtmqWuAHX/5GGCXL5vQ1J/rvvcf18/Pd8nLOGRK1ezluBmSj2PweqGsay3hcLnu7l1EfWbCAdBJZDDNhAOihSkQlcdqJhwILeFrnwkHRMua1hIOCBb1mQkHQmueeCYcEJ1k0raEA6KrTNqWcEC0qM9MOBBadPCcCQdEV5m0LeGAaFGfmXAgdFZRsIQDootM2pZwQHSXSdsSDoTWXPFMOCC6yLfTMp2I7jJrW6aT0JorDpbpRHSWidsynYhuMnFbppPQmiuOlulEdJaZGwqPporXFguhNVWcsPBoqhh+JyV8XVsshB6nb7EgOq0tFgRX32JB9PAtFkBbnjhS4dHwdW2xIHr4FguhNVWcqPBYqvikwqO54rXFQugYfIsF0cW3WBDdfYuF0Cn4Fguis2+xILr5Fguh8+lbLIjOvsWC6OZbLIQup2+xIDqtLRYES6gxPXc/Flc9duUv190GsqXeZYp//RjI1q/oeTzL+pm8T4o/fwvZbuo+b7zG+joaH3/9a/q4hpsxvM8dt+kAQrTOf+YCIvTQ+c+cQIjW+c/cQIjWCdAcQYDW3HGdriBE6wRoziBE6xxo7iBCq6l0OoQQrXOguYQQrZOgOYUQrZOguYUIrS7T6RhCtE6C5hpCtE6C5hwitJpOp3sI0ToJmq0Q0ToJmrWQ0GpAzRHeiHpQp+8Y0d29x4RWL6r5jxGc3YOM6OY+ZELX07zICM3uR0Z0c08yodvpvmREJ/cmI7q6PxnRwz3KhFa/asHCo6bViIWnD/crE3pE9ywjurhvGdHdvcuA1uh7+ZcRXdzDjOjuPmZCh+BeZkRn9zMjurmnmdAxLF8zgrN7mxHd3N9MaKvLgsKj6ePlc0Z0da8zodX6yh5WzR1HHPGY/xVHPOaBxRGP5o4bjngeueMfCwYfgff1TX69Cbxrvwm8Q/oYeMs8mb9c4K2vGdP62XoFs7++Lzr6QceszPExdf3yXEfx47Bdp/v1JFwuvJ/ulxse0cUd8Yju7oondA3ujEd0dnc8ops75AndTnfJIzq7Ux7Rzd3yhO6nO+YRndw1j+jqznlCD/Wp2BSEaPWp2BSEaPWpRHojalOxKQjQOuPXGfsiWn0qOgUhWG0qNgUROqhNxaYgRKtTBT2smmsrM/YldFSbik1BiFafik1BiFafChUezbXFQIVHc22pU+HRXFspVHh0vm+RCo9O+X1Q4dFc21mp8GiuLSYqPJpryycVnixibOmim9f+dD55zPnXd7mb8/v5QumHrFPg85wvv6jOgmf4G5/zY75Pl8h6tZxWhvU6Wi/D83qhbs42K1d8vfAuF6Kbs10QBOvebLOyRUI3j04IrdaQs2kVFYF1b1Y/Pkbr3myzMkZC695sG/BOsu7NdqtoJLTuzTarLyO07s12q2wEdNG92WbVjYTWvdmuX3VE695s000PQlfdm+1W6Uho3ZvtaklDtO7NNqt4BHTTxHTXTQ9Ea2666aYHojU33a36EdBdc9PNKiAJrbnpblWQhNbcdLNKSEAPzU2zmx6amO5WI01oTUxT4RHRO0KGwpNPzUtT4dHSmdyp8GiMVgsUHg3ReqTCoyGaDAcUHgmLjlCp8OSoaWkqPLojWk4qPBql1UaFR6O0nqnw5KR5aSo8OWlemgpPzpqXpsKjO6IlUuHRKK0OKjwapfVKhScXzU1T4bHqmR5vP8tPI4Mnc9/1be7CtPFqAbQwLXwM06wzxJdLzcivG9q8j/kadhfrvy3b8ulOae+aEFXFvYzRy6C8XDiCr5YuF968jXkDbbWE6O6rJUBPc6CtlhCdfbWE6OarJUKbP9BWS4jOvlpCdPPVEqHNIGirJURrEGppGkRrEGppGkRrEBpuH7D7cPicOwWI1iDU0jSI1iDU0jSENoNghDdi/kBL0yBaY1BL0xDa/IGapkGwhqCWpkG0hqCWpiF0nd4IhG5vBKK3N4LQbXsjEL29EYje3ghC9+2NQPT2RiB6eyMIPbY3AtHbG4Ho7Y1A9PZGAHoaBKnwTIMgFZ5pEKTCMw2CVHimQZAKzzQIUuGZBkEoPNMfSIVn+gOp8Ex/IBSeaQ+kwjPtgVR4pj0QPazTG0iFZ3oDqfBMbyAVnukNpMJjW5Q93ArPp2HYUyR8fZu7SDicryZCDbTMIvgUCuf6txYD//COpFbxzqrV65D5GF1DnTKrm6+X3MUjUWTBqgwZLjc065sZPo5zFjgjXMKdYBXOjC4iDVZpyPAu4mClhggvEmjQX1MWnH1WOTNcljuzzBnh8u2KVufM6CwC8eaRuQ97yqx0RniTxfAsdWa4hBuz1pnh7ThnsTPCJfSJs9qZ4dq51qoOGV6PMuudGT6ONgueES5COWbFM8Prcc6SZ4aPI86aZ4JrBJRn0TPDJfCYVc8M70crWJHUpzUiVqRsfYuxImkYFCtWJI2DcqKKpJu39cSKpGat1rAiqVtrZPjSEgmFgBVJQ6HYsSJpLJQLVSTdvq0RK5JattrAiqSerVGxImlEFBJWJA2JRuz3inQ/AT82b2/e4DYYCq/GLssLxpe8YPmCecGP1xuxNm9v8m2tiAhF+yJfRuRlCF6vHO4avV55l22MbhtleHHfKMO7G0cRPoI7RxlelnWU0d29owTXHOYyjzI8L/coo5vbRxEeTvePMjybgZSxzR2kCNcs5kwMMTy5h5Th1a2DDB/uHUS4dsWcySGGV3cPMny4fRDh2hlz5ocYXtxAyPDuDkKEa0JzpogYXtxDyPDuJkKEa1KzYkWyBpkJK5J1yDyxIllqs2FFsh6ZmSqS9cgMXJE0udm5Iml2s2BF0i6ZkSuSpjcHVyTNb1b47GqXzMQVSftknliRLL/ZsCJZp8yMFcm6ZQasSJbi7FiRLMdZsCJZx8yIFcmynAMrkuU5K1Yka5qZsCJZ18wTK5LlOhtWJOubyWMka5zJYyTLePIYyVKePEay3pk8RrKkJ46RZl3GaUvlHws7n7KeN290G+nHVzunRfnXk2C+nlHz4/VxTCK09Q4r+n/jzdSC3R7se3UZoZchuQaVy6R3vfI+qFwuPYYnt+kxvLlPD+ESVy6jHsOTO/UYXt2qx/DhXj2Ep+hmPYZXd+sxfLhdD+ESVy6/HsOLGfYY292xh3Ct7JmWPYaX5dljdHfTHsK1tme69hiel22P0c19ewjX6p5p3GN4ducew5tb9xCuZq3p3WN4cvMew6u79xCuNT6BK5IW+XSuSFrlU7giaZ1PxIpkhT4DK5JV+lSsSFbrk7AiaVwZT6xIVu3TsCJZxU/GimQlPwErktX8wI/UKn4KViQr+YlYkazmZ1BFspqfihXJin4SViRNG4+TKpJV/TSsSFb2k7EiWd1PwIpkltIc7z//TwOa55jy+ka3MWW+Lf55OQOnhC9Y8JtW5KhRo71emfvpmvrgpwyGbey+DtXL2LxeWXd+4HLl3RuNnR8guBrO693nd8eWnR9AeN/5AYKnbaJl+HbRMnzbaBGet4+W4dtIy/DtpEV42VZahm8vLcO3mRbhdbtpGb7ttAzfflqGb0Mtwtt21DJ8W2oZvj21CO9uqmX0dtUyfNtqET7cV8vobaxl+HbWElzbfFf47OZze2sZvs21CA/bXcvwba9l+PbXIjxugy3Dt8OW4dtii/C0PbYM3yZbhm+XLcO3zRbheftsGb6NtgzfTluEl221ZbhEdK3dK9KnUYRFdDXYCu/6RrcRXbmrE3o9ZSerKeyrZQk/jejO9ffxyB/6+74JK2Zb5ut4vQzQNcLoKyC8XHmfLjpXugDh/QgrXUBwbf220gUIl3BnpQsQ3o660gUE1/ZvK12AcAl3VroA4U3i45kuILg2gVvpAoRLuLPSBQiXcGelCxA+9Otv0kVwbQS30gUIl3BnpQsQPiREhjeufuyVLkB48WYHDO+r2wGhrRXcShcgfHdjYnhfDQ8Qrc3gVroA4dlbHjC8ec8DhGs/uI4VyTrCFaxI1hIuYkXSCMO3VBCe9pYKwuveUiG49oU7sSJZb7iGFcmaw2WsSNYdLmBFsvZwHSuSOQ3buNeMTye05wjj+ka3EUa9K794PWYkf6nzRbSwwsIIfb1fVgixXulxj7YR+YdlQxz3yZPlsr2MkQ/KK6/c9B9fLrl7+eYnLyFcPb/Tf4zo7GcvMbz54UsIV9fv7cjcscmPX2J49fOXGD7WAUyIVsvv8h8jvPoRTAwffgYTwmv0Q5gYXvwUJoZ3P4YJ4S36OUwML34QE8O7n8SEcO16Po9iYniW1eSsiEC4yOs8fhLh2vt8nj/J8CyryVkRgfC2a7QArr1dvEYL4WnXaCG87RotgmsH9E4VKWsH9IIVKauPJmJF0hYvlf6a2gG9YkXSvIzXaCF8eI0WobUHesOKpD1evEYL4X3XaBFc18MdK5KmZbxGC+F912gRXNfDAyuSdnrxGi2Ea1x+3j+N99P784bc9R1ug6t2V87xevSF/J52vNn4rcVYFmL29fr5GmdpmevjCr2fVfQ6Hqkdu6497vFusyxsp/llvF4G6PXKfMijrc/T5cK79+mHRo36iRNcVmIpDtMfhMsTAckmEn7aEo/gEvapxuoSD+H50H6PAdLtsMUpvBcJ+zT5eMJ7kchPM/0dfkAS+dVx3j8I95GfnhPV4bBL6HfGgZ8WDf10vQBvRkK/VIepD8El9NOp8IQ3I6FfO4flnBDeD7V7nfBmJPQ787B4COHliDY0EO8i46fFQwTvD5FFeFbLrsVDCG+HCsaAGiChny0ToQbouTcJP2F67k3AeqSRn2Z6oB5p5NfYkKvLXzdXoCBp1Hd2LEga9s1juhhdjxyxIFnUd2JB0sCvVSxIavLX1R8UJA38wokFSSO/da4pw8uRCxYkjfx0qxoKkkZ+mnGCgqQmfz3gEAqSRn567gAUJI389BmAgqSRX25YkOb+XbSo9cfijefs2jWyS3cBYL9z+b8ewSDzXvlysd8vP8vH6lckfXff0Nv3Zq+l0v+HHRkWf793MVSN3bT/MnCPkXq96FHFf7noLuLZVfyIflTxI/xRxU/wvPKLiH1U8SP8UcVP8LKr+BH9qOJH+KOKH+GPKn6C10cVP8K1rnWuWRGuda1zTid407rWuWZFuNa1zjUrwrWudWbRCN61rnVm0RCuda0zi4ZwrWudWTSCD61rnVk0hGtd68yiIVzrWtO9ctxFPFrXOrNoCNe61plFQ7gWtmJF0niqdqpIGk71ghVJtx/PiBVJDU6B/ppRq1qxImkWrSSsSBpMtZMqksZS3hwL4VrXihVJzU0xYEVSc1PqWJE0i1YKViSNpVrEiqSxVB9YkWaTkzffjHdT8FObk2u8cxcWxfPifvrdeT2lIloU+PXyYug1sGn9HLpNrh/gddhexuk14SXT9Iy6bwb8Jj9WLewVQWe43NeMuhEuamFtpeDNRJ2mLQ3AcJmmu6UBEK6d7rKlARgu03S0NADD+0pLIlob3c20JMOLpyUZLl9IRmqTu5mWZHj2tCTD+0pLIroGT0syPHtakuHN05IIb6enJRmePC3J8OZpSYRrn7uZlmR48rQkw6unJRk+PC2J8BE9Lcnw6mlJhg9PSxJcHWgrLcnw4mlJhndPSyI8BE9LMrx4WpLhfaUlEa1t7gLWI3WgrbQkw5umJRGqfpeIBUnrFVdakuFtpSURrX6XiAXJ2tydWJCszV3FgmRt7jIWJGtzd2JBsvSYTgR3n/+n8cbT/uj1yvs4MFw8ahoHvhyDUX6rJ5R+Nw70Y8jkcnVd7lPL7pveDS+4vQ7Lyzi8Xti9f9XNgN4ElMH7VzE8e/8qhjfvX4VwPaFi1l4wPHv/KoY371+FcFn9zv5VjE7ev4rh1ftXMXys/lWI1mMqZn0qw6vXpzJ8WH0qYvWYilmfyvDi9akM716fivASvT6V4cXrUxnevT4V4SaP5nNgePb6VIY3r09FeAten8rw7PWpDG9en4pwbcPRuCJJULvqUxlevT4V4dqGo3NFGsnrUxlevT6V4eOY9amE1ph21acyvHh9KsPHqk9FtDbhaFiRNKRd9akM71afiljtwNGxImlAu+pTGd69PhXh2oRjYEXSoHbVpzK8eX0qwvUcixMrknXhaFiRtA3Hqk9FuJ5mEbAiWRuOjhXJolpdTd49BJ9GV4/k5vXC+6A2XryBetDDy4EW9fyCe77K/Pq4R72jEd6d46Y5825L2suAPEbgNZKN7sy+GcWbiLm6M5vhw53ZBE+ipsuZzfDizmyGd3dmI1yeveXMZnhZzmxGd3dmI1wEdTmzGZ7Nmc3Y5s5shIuaLmc2w/NyZjO6uTMb4VrRPfeUGJ7cmc3w6s5shIuYLmc2w5M7sxle3ZnN8OHObITX6KdnMLz46RkMH356BsJb9NMzGF789AyGdz89A+E9+OkZDM++l8fw7qdnIHwE990wPC/fDaOb+24Irt7I5btheDLfDWOb+24QHk733TA8Ld8No6v7bhg+3HeD8Bjdd8Pw6r4bhg/33SA8RffdMLy474bh3X03CM/BfTcML+67YXh33w3CtbsIj5HmQW71XgTexWFPRsfrRfdBb7oYLzWT+3JwSR5fNJP70e1orYvD4252jcvvzk8ONbGzJmbjgOtovQzPNS/pGYzrON8GXJ7BQPjuwI3wtDtwM9w7cDO67gwGwsfOYBA8J89gILruDAbCx85gELzEmcFAbNkZDIT3ncEguMRbnsFAeNkZDIT3ncEgeAs7g4HwvDMYCG87g0Fwibc8g4HwvDMYCG87g0HwcXqHLYYn77DF8OodtgiuAdfqsMXw5B22GF79NFuGDz/OFuGylJ7n2TK6+oG2DB9+oi3CtfNnoYqk9SjrTFuGdz/UFuHa+7OyZ1fjrXWsLcO7n2uLcG382bAiaTHKOtmW4RIRBaxImpfsHSuSFqOcBSuS5SVHvn/1T4OCp7zk5cL7EC1f7J+/Oy8nTmhh4leLzmyfXd/zl8d732UkZdVXZ0byMhSP3/31ot2j5Wb8blKM3qOF0btHC8N3jxaCy1hajxbG7h4tDN89WhjuPVoQHXaPFobvHi0M3z1aEB53jxaG7x4tDN89WhCedo8Whu8eLQzfPVoQnnePFobvHi0M3z1aEF52jxaG7x4tDN89WhBed48Whu8eLQzfPVoQ3rxHC6N3jxaG7x4tDJ89WhDbd48Whu8eLQz3Hi2IHrtHC8N3jxaG7x4tBNfaJd8JQPju0cLw3aMF4WH3aGH47tHC8LZ3AgiuaZITK5Ju9PtOAMLb3gkguKZJAlYk7Z3oOwEIr3snAOFj7wQQPKe9E4DwuncCED58J4DQmifhMZKlO9/dy7sg7ymUvlxzH0rX2/ql14M20t9GKP0DpUpV5vihj/xlgB4j8hqPnV4WeDOqt8HhLAtkdPWyQISLgKyyQIYnLwtkePWyQIYPLwtEuMSGqyyQ4cXLAhk+jnMJN8FzPOISboQXWeNO4Ua4fEmXcBNc2zks4UZ4PsYSboT341zCTXCRmriEG+H5yEu4Ea5nIE7hJng7t1giPPniFtFtL24JroVNa3GL8DQXt4ite3GL8LEXtwRXz1LBiqSWpcgVSYuaBlYkNYD64hbhZS9uEd734pbgIezFLcLLXtwivO/FLcG1qqljRdLY0Be3CG97cUtwrWwaWJHUBOqLW4S3vbgluPqWTqxIVtrUsCJpbOiLW4KrbylgRbLSpk4VyXKt5Y0ivYtPnmLDyzX3sWG7q2m6HNnRf6NHdvwlAaL22zaurX+vax/8/rgOrbJJxXThMlYvg3MNuMY8x/RmlG/eSGYgO8cU0fKlTPMcU4bLBDTPMWW4zEHzHFOGDz+YBOG6YJsHkzC8+sEkDB9+MAnCtfH8PJiE4cUPJmF494NJEC7LvXUwCcOLH0zC8O4HkyC8BT+YhOHZDyZhePODSRDegx9MwvDsB5MwvNnBJIgdpx9MwvDkB5MwvK6DSQitG9vrYBKGJz+YhOF1HUzC6OEHkyA8RD+YhOHFDyZh+PCDSRAeox9MwvDiB5MwXNM0WJF0Z3sdTMLw7AeTMLz7wSQI17M7GlYk3dxeB5MwvPnBJAiXeGsdTMLw5Ge9M7zpsb33z8ynM/1T1HW58D7q6ndFN6/HmMiraruK8Zs7zeS7/sPX004uYx3Vq7S6lFzG4uWXf70yqynKPtTrKN68UddGPjbNEHwEWadNKynCszbyse8ewuVxL7OvDMB1S7xLBKszDcLlcR+nzTQIb2qKsu8ewYPGwad99xAuixNtoQNvRr3i2pwF0hJvatePxHAJxOVWbKpBuMSbHY6K+sTlEw3wTpLIQzxtnkF4UUsUfVzUJl5Pm2YIniXW1Ow4vJdcVPwsWYNwiTX1awpvpgRt5WNWR4RLrKldQuDN6FK6B0vWEFy1p5yWrEG4xJoRK5JmPdPAiqRZTze3IzxpKx+qSLolPk6uSF3izcYVqUu8mbkidYk3A1ekLgFn54o0JOAsXJFG0X4+9AkbEm8OrEia+ZQJlyqSZj4lKoRsP+qJFUnTnq1hRdIt8ZGpImnWMwSsSJr1lMCAKpJmPSUipIqkWc8asSJp1rMNrEi6Iz4qViTNeoaEFUmznhINUEXSrGfmMZJmPSuPkaykJ9996T4N3LK2K9Go8O7T1ZArnHeR8rir1LmcSVO+6Jk0lp+ssxYn/XH9/HyXi9Rws4dqsnEZl5eBeL1SlqDyZVFVuI7oTWwoqhCyqQLC5b56OQOku0yvs7kBwUWh/LlBuPalmhZlhDeZXoupAsHjqR4fUwWEiypoHwd4MyJRZyumCgQXiYo5myogXFQhFMtaILyqx8dUAeFDptdicQrBJfocMVucgvAqqmIMw4fMr8WyFgQvUebXbFkLhEtYLgFigDdTukyx2eIUgouADj06o0G8aMUvfcJqlym2WBqV4C1owa+lURGuJyLAMW9NpIorkkSeo3JFkhkmJKxImv49uSKNU6ZXrkgjabUvViTNAAeuSBJ5jo4VSVPAoWBF0hRwiliRNAecB1YkzQHXihVJc8A9YUWyHPCJFUlzwKFhRdIccMpYkSwHHLAiaQ64dqxImgPuBSuS5oAlHKGKpDngMLAiaQ44VapImgIuCSvSrCdvf0EINOPPei84b+NPDVau8efrkThfNlOrXw/L1OqJ0vHnbyHHdw2S9vmC1yH5TsK2+CLwZjBvE7ZrEYjwEXwRyPDsi0CGN18EElwTtmsRyPDsi0CGN18EIjycvghkePJFIMN1lrK0FMN1lrK0FMK1/f5MlDNcZylLSzFcZylLSyFc2+/PRDnDdZaytBTDdZaytBTCtf++JcoZrZOUpaUYrpOUpaUQrj34OxwVbcA/E+UM1xnK0lII1w78lihntE5QWJHMppqwIplN9cSKZA34G1Yka8CfuSKpTzVwRdIG/J0rkjbgL1yR1KoauSJpA/7BFUkb8FeuSOpVTViRzKt6YkWyBvwNK5I14M9YkcyrGrAiWQP+jhXJGvAXrEjmVY1UkawB/8CKZA34K1Yks6omOCrqUz2xIlkH/oYVyVrwZ6pIZlPlMZJ14Ocx0kzYlvsPFORs6/0YvY+Z48V6ms/LeUkpf716I31dbY9v7+vt8VcLpTd1Rz/oNtXjsmZdwXUUH8N2TV/FPkybLhfdp69yGboUZXj3Yy4RXu04UtMmhGdvc8BwPZp12BRC8KaHtasxh9F6MuvQpSjDm0TM/f6zup+Ke4B3os0f5BMN8E66Woe7TR8EH+odHvRxGWod7pocY7hah4dpE8LNOmzREsA1fTUXqxA367BNHwhX67CdhYVw7bAchkVLCFfrcLdoCeFqHR6aHEN4NOuwTSEIV+vwsGgJ4WYdtmiJ4Emtw1iRdCqWqZUqkk7FvWFF0vTVmbEiafpqtYJmuFqHsSLpXPz2V30n8HMaTvfP5ftpOF28iPm8HFeT6xfdOv0L5uKY73MTsr7rzRTrMmQvY/Q6yHtr8nrlXd5hb00yfG9NIjztrUmG761Jhu+tSYTnvTXJ8L01yfC9NcnwvTWJ8LK3Jhm+tyYZvrcmEV731iTD99Ykw/fWJMLb3ppkuG9NMnpvTSK8761Jhs+tScburUmEj701yXDfmmT03pokuBaErK1Jhu+tSYbvrUmG761JhIe9NcnwvTXJ8L01ifC4tyYZvrcmGb63JhGe9tYkw/fWJMP31iTC896aZPjemmT43ppEuPqG/6K5+8mOdhMovY2p8sW5pqHJy2kppX25YOpXCZjavJf5Okau/7Zcxae7gyPsHMFlhHxIXi8pe0VxueTuHfpeUQDcDGwrzEZ43isKhPe9oiC4OtjWigLhea8oEN5W8RGi1cAWZ44D4UnLEW2WRbhEiRXeibrX0sxxIFxCxHPmOBBe9aBX+rioeS3PHAfB1bwWZo4D4VWLEW2WRbhEiGXmOAiu5rU4cxwIL8LMHAfCux72arMswdW8lmaOA+FFD3u1WRbhXYsRLcdBcHWv5ZnjQHjWYkSqSGZg61yR1MBWuCKpge2dot6HrHFwRVIHW+WKpA62xBVJHWwnViQ1sDWsSGZgy1iRzMAW2J2Ye61jRTL3WsGKZO61SBVJs39jYEUy81rFimTmtYQVycxrJ1YkM681rEhmXstYkcy8FrAimXmtY0Uy81rBimTutYgVyXbi1ooIxknPceo1+Hwbp5aLw01zf68HnMQv2taFhKs/vPWmrqC1qX4ZvZfhuoYm8u62+LtceR+ahJZM8BCumxLRBI/geqKxZi4QqzsSyQQP4bojEU3wCK7HGctnAkel6IZENMFDuG5IJEtFEVwr9NW/CGndj0imdwjX/YhoekdwPcw4x0FvRg8zDumkn2nT/Yho2SiC62HGJZneIVy7mUTTO4RrN5NkERjB9TDjGi0CQ7i2M0mWjkK4tjNJFoEhXPuZRIvAAG6nGed0Lx93uPYziRaBIVz7mSSLwAiuxxkXrEh2nHHEiqSxSRlYkexE48qeXjvOOGFFsuOMT6xIdpxxo4pkpxlnrEh2mnHAiqQGodapItlhxgUrkh1mHLEiaViyOiv+4NT3bBC6hhxvo5N68RLpm1/O9vhqYcnH17B3f3u+mqxjj7EWp5fh8N//5ZKuR43O9cnlkpt36HrU6FyfIFyPGrX1CaGHnjQ61ycI15NG5/oE4cKsjAnALdu3MiYI15NG5/oE4XrS6FyfEFyzfStjgnA9aXSuTxCuR43O9QnBNd23MiYIT+8fyvt0X1gZE4Jrxm9lTBCetk8N4XXnoBE+tk+N4JryWxkThNftU0P4cJ8aoTXjtzImCC/bp4bwPn1qhNV0X8eKZOm+ghXJ+hVGqkiW7RtYkSzbV7EiWbvCxBVJ2xWeXJE029e4Imm9auaKpB0LA1ckzfZ1rkia7StYkaxlYcSKZOm+gRXJ0n0VK5L1LExYkaxn4YkVyTJ+DSuS1atmrEjWszBgRbKUX8eKZCm/QhXJWhZGrEiW8RtYkSzjV+GdaL9CHiNZv0IeI1m6D8dIlu1b3h0Y4j1n+65B8tt4ut8a7l8P+Di/qNPv42voY6ZEaOtdVqj9xtx3Ngk8q8nNZZRehuUax7mv63LlfRznvi6Et/1sEFziOPd1ITxtXxfC6/Z1EVziuOXrQnTavi6E1+3rQviYvi7CSgznvi6El+3rQvhwXxehJYZzXxfCy/Z1IbxvXxfBJYxzXxfC8/Z1IbxvXxfBtWZj+boQnrevC+Ft+7oIrkUby9eF8Lx9XQhv29dFcK3byFyRJI5zXxfC6/Z1IXxsXxfArXAjYkWywo2BFckKNypVJKvbSFiRNIxrJ1Ykq9tobMytaCNjRdIYLgasSFa00akiWc1GwYpkNRsRK5LVbAysSFazUbEiWc1GwoqkYVw+sSKZyTBXCxJ/LIZ4DueuMdrbcG7cFW5czuRoX69+Mq14zX72+8eure7W8nPbbFllhxJdR+oxNK8Xjb0Gvlx0FxHFvQZGeNlrYISPvQYmuNp/1xoY4Q9nJcIfzkqC54ezEuEPZyXCH85KgpeHsxLhD2clwrezktD14axE+MNZifDlrCRsezgrEf5wViJ8OysR/XBWErw/nJUIfzgrEf5wVhJ8PJyVCH84KxH+cFYCXA/SdWclwh/OSoQ/nJUEDw9nJcIfzkqEP5yVBI8PZyXCH85KhD+clQRPD2clwh/OSoRvZyWiH85KgueHsxLhy1lJWCvTOO9H5d2U/by3fI2I3gVPEtfdBE+vR2sk+1C/YC7s0wjqXH8fjyyZv/ebiVy0dtyN2csgXRMjaS6Kr1fez+llLooRrmaEuShmuLpHjWG4ukdtUYxwbSw1F8UMV/eoLYoZru5RWxQjXOb1OhfFDE96Jr18fIyWAGMuihGujaXmopjh6UgNjrl2lZqLYoYP71WNcO0qZYtiRlfvVc3w4es9gqtnbBWEM7x4QTjDuxeEI1ybSs1FMcOLF4QzvHtBOMK1qdQsCGd49oJwhjcvCEe4dpWKWJE0M7I2DhjefOMA4dpYKmFFss5SJ1Yk6yzVsCKZcazHe0X6dA55yozczNg6uYe7yT3c2dpfTwPI+at2Y/3dmsj1NX9Zk/h6tcd92obXH5a3bNznF+xYKvvQLyP2MkSvV3Y/x+R65V3uIPg5JgzPdo4JY5ufY4JwtVPO9mwMT+scE0Y3b2GL8HJ6C1uGJ29hy/DqLWwZPryFLcJr9Ba2DK/ewpbhw1vYIrxFb2HL8OItbBnevYUtwnvwFrYML97CluHdW9giXNsezxa2DM/ewpbhzVvYElxTE+dsYcvwvFrYMrp5C1uEh9Nb2DI8WQtbxlZvYYvweHoLW4an1cKW0dVb2DJ8eAtbhKfoLWwZXryFLcOHt7BFuHrPA1akrIvTjhXJIhgJIm6/d59Olc8RzDUseRvBxDvr+2s/ecux66T/W4xgPMWgz9NnBXqPK/W+VrneeKQv7Lr2uNe7GEAWvLnYV+gybi8DdY00VmnQ9cr7YGOVBiFcgo1VGsTw5KVBDK9eGoRwiTZWaRDDk5cGMbx6aRDDRWhmaRDCJdrQ0iDGFi8NYvjw0iCES6gxS4MYXbw0iOHdS4MQLpHGLA1idPbSIIZ3Lw1CuAQacVixIsMlwq9WrMhwCfJTvP+C38UC59FPK1ZkuAT5zYoVGS5RfrZiRYTrgbjBihUZLlF+x4qkU0otWJHUO9wjViT1ncjDSxVJo41QsSJptJESViSNNsqJFUmjjdqwIql5uGesSBpt0KdXQ43QsSJpa6tUsCLNorxxP4qfTn5PGyc34cbbyCRfnDDlvHbt1hpaDQK+bGTyy8/yq/qVSe/Ct1T2Pdpr6v7jH3bcUvx932YTltBcRvFl2K6ZhXJWi7Sv438719fWTEQQnuTZrxZpI7zJs19NRAheT3n8m0XaCE/y+Fdb+yNcYurY7PFH+DjqqCYiBJfpvtdmIoLwepzyFioiCB9HtC8Hw3s8knyqAd5ML25HY3g/mqy34b3IfN97tcgG4eU4S7PIBuFdlWmwp13zChIhWGSD8HyUaqejMrwdLbH71rl+yAca4J0EWTO2amENwtsRc7OwhuDx9JIGhidvkcjwerSCFUnn+hGxIqnf4RxYkdTvECtWJM0s5IQVSef6emJF0um+NaxINn+P835kPp0Untp9X698P3+Xiw+jnJd231o6+qXnbzsx+fdzf8Tv4UZoJPT34PwyLi8D8XqlTIJrRr6O6PWNRBnCmpERLve1ZmSEyyS4ZmSEyyS4ZmSCyyqgrxkZ4TIJrhkZ4bIAXzMywWUVkNaMjHCZBNeMjHCZBNeMTHAJrfuakREus+CakREus+CckQktOpLWjIxwmQXXjIxwmQXnjExoCfn6mpERLvPgmpERLvNggvfdZBJcMzLCZRJcMzLCZRJcMzLCZRJcMzLBu0yCa0ZGuEyChStSl0kwckUyax1XJAn4WuWKJAHfSFiR1BATTqxIaoiJDSuSGmJyxoqkhpgasCJp0Nc6ViQN+kbBiqSGmBCxIqkhJg6sSGqIyZUqkvphasKKpDFfP7Eiacw3GlUkDZBCxoqkdhiZVKkiqR0m0w9UPa7mdfnRkOM53rtc+T7eqxd/jvzltRW5ls7/Zr0wf2m894ONHbVEWMuz0s2YvQzSNa+zzoi8Ge3bjZt1RiTDh58RifAS/YxIhhc/I5Lhw8+IRHiNfkYkw8s6I5LRmrScW/4Eb8HPiGR4tjMiGdv9jEiE9+BnRDI8rzMiGd38jEiEj9PPiGS4NpibW/4I1wZzc8sf4LpxE5cJCeFJpqO55Y/wKvPR3PJH+JD5aJqQCB6izEfThITwKhPSNCEhfMiENE1IBJclW+5YkbRguBasSLpb0CNWJK0YHgMrkm7chIoVSTduUsKKpBXD5cSKpBXDtVFF0oLhnrEiWepnbVH92IzzHApcrnwfCrSL0UX/8trtOf0Npn541XDcXZevw/UyPtdEhuf9rgN9m8gYa5WBcLmvtcpA+DjiWmUQPIterFUGwkUv1ioD4f1oa5VBcPlajLnKQLTIxVplIFzkYq0yCF7DkecqA9GiFmuVgXCRi7XKIHg7D/yBSvQSysx7ILwdKc68B8H7eeQx8x4IT0etM++B8Hr0NPMeBNdu0CsTi/C0M7EIrzsTi/CxM7EA10SGZ2IRXnYmFuFjZ2IJHuLOxCK87EwswvvOxBJcu0GfWJE0keGZWIT3nYkluNYvBKpIWtjjmViEt52JJbhWMESqSJrI8EwswtvOxBLcXLHj/nn8dLJ8DmAuV74PYPrFDyN/eW0IXZJAf81cxmeBSOjuBbErxqrmqefHUlwvu023V3xwmLgH9m736vTmYNeReRmK1yvzcS77+3VMb95IlnFqfyes+t2W/R3hcovL/o5wWcNN+zuiZQm37O8Ej+k4l/0d4VW7ndvEg3BZwi37O8HV7rbs7wgvR1v2d4TLEm7Z3wmudrcy18II12/3XAsjXGKyMdfCBNcMap1rYYTno63sHMLbMVZ2juASIJ4rO4fwfMSVnUN488NmEC4R4uqfwPB0tJWdQ3g9xszOEVpiRC8RRHjaJYIIr7NEELFjlwgSfMRdIojw4iWCiB67RBDgGh96iSDCyy4RRHjfJYIED2GXCCI87xJBhPddIkhwiQ+9RBDheZcIIrztEkGCp3OXCCI87RJBhLddIkhwCRC9RBDhaZcIIrzuEkGCq1bPfmo/GKI8101drnwbIQp0l+L6f93i+NMI8aOzOKw9qV9m2uv0BNbzq/4bRIp7fX8doe+3N55dWW7G9ibiyt6qlOHNW5UiPJ7eqpThyVuVMrx6q1KEp9NblTI8eatShtfVqpTRw1uVIlw7HM+uLAwv1qqUscNblSK8RG9VyvCyWpUyunurUoTX4K1KGZ69VSnDu7cqRXgL3qqU4dlblTJcG9RbVxaESyzXZlcWhsv8NruyMLwd5+zKgvBxHrFwRRoyv0WuSGNnIxg+jlaxImk8NxJWJGtvfGJF0nxfbFiRNN+XM1YkzffVQBVJw7nWsSJpODcKViTdsAwRjnnsRxxYkTTXlytWJE321UQVydobn1iRNJQbDSuSblaGjBVJk30pYEWa7Y3L7ecPuhune23SSO78410kp923RV7bx1xfeYnkyl95s/LTSO538nifHpNZ9NaXy8ijtnP++0vMd65tznDuLj17I/Q2ftNz0daRqtdxeRmI1yuHO1pvRvQmUIzuaGV4cUcrw4c7WhFux1Pazg7DiztaGa6rCtvZQbgdT2k7OwzP7mhleHdHK8LthErb2WF4dkcrw5s7WhFuR1Tazg7DkztaGd7c0Ypwbao095oZnpajldHVHa0MH+5oRbj2VLK9ZkZXd7QyfLijFeHaUol+oNpPae41M1zdQ1yRtJ/S4Iqk/ZQqVyTtp5S4Io3gdbgMz16Hy/DmdbgEt35KASuS9VPqWJGsoVLBimQNlSJWJGuoNLAiWU+lihXJeiolrEha+rjqcBlevQ6X4cPrcBGuTZUCVSTrqdSxIllPpYIVyXoqRapI1lJpYEWyeFIipNth/DSmeWpccL3yfUCpzT8vAeVrx2e1cut7ftmWSv+qU9C0qHduwlxH62V4rsmwVK11zc043ybDijZ0gbTc1mmtaxgu026L97/FfTxyZmtdw/B6xGCtaxgu82631jUI18KOYq1rGF6OFq2jBMNl6h3WugbhEpCc1apjGV68mRbDuzfTQngL3kyL4dmbaTG8eTMthOu5rbOZFsOzN9NiePNmWgjXc1tnMy2GJ2umxdjqzbQIrv791UyL4Wk102J09WZaDB/eTAvhemZrp4qkubDVTIvhw5tpIVyPbB1YkTQZtpppMbx7My2Ey1JzNdNiePYeNwzv3kwL4Tl4vT7DszfTYnjzZloIV/fbu0/109nyaW/zeuX7ACbVu4zYS1drhb5q7PJv1thaXY/6BuVm0B6jdE00pHk4181I3yYayjyci+G64Bn3t3SfaejzcC6EV13w2FE4DNcH047CYbgueOwoHIbrgseOwkF40wWPHYXDcF3xWL8zhuuKR4/CQXTXBY8dhcNwXfHYUTgM74esqBk7wtHm4VwMF9mdh3MxvB+nHc5FaE00xHk4F8NFdefhXAxvR5mHcyE8nEebh3MxPB1jHs7F8Hac83AuhMfziPNwLoanI8/DuRhej3piRcpWgIQVKVsBElakbAVIWJGyFSBhRcpWgIQVKVsBElakpx5LfD54nqQvF72fpPUUo8skfWncPH6jNXbJj53o19n536hZs3x/+1oQX8bqZXBer8w7kXYd5Zs3ap5II3Q8dyIN4Xkn0hDePJFGaE2mrEQawpM3tGN4tYZ2jB3e0A7hmkpZm40Ir97QjuHDG9ohXFMpa7MR4cUb2jG8e0M7hGsqZW02Irx4QzuGd29oh/AWvKEdw7MXtjK8eWErwnvwwlaGZy9sZXjzwlaEj9MLWxmevLCV4XUVthLakikJK5ImU1ZhK8PrKmxl9PDCVoSH6IWtDC8H/UAtlVKwImkqxY2vCC9e2Mrw7oWtCNdUSsKKpHs7q7CV4d0LWxGuqZSMFUlTKauwleHNC1sRrntBZdy/+qdBwbO56HLl+yitni+o7gO9NrHW0+J/k3tBn0Zpf43G1dombBaXXUfuZaiugc9qOH+98j7yWQ3nGZ694TzDmzecR7g2VZ0N5xmevJsHw6s3nEe4Ht+hoofY5A3nGV694TzDx1GiZe0JLYFPHTNrj/By9LWPiPBxnHMfkdB6eMfaR0R4OdLaR0S4yM/aRyS4nt6x9hERnveyCeFd1icza09wPb5j7SMiPMsCZWbtEd5kgTKz9gDXwKetfUSEJ1mjzKw9wpusUbAiabopZqxIdnxHwIpkJ0J1rEga/LSCFcmO74hYkTTddA6sSJpuipU9vZprygkrkp3dcWJF0sinNapIGviMjBXJTu8IWJH09I7YqSLNBgpvXvzTifU5O3W58n3c017tMhb3vDb//q02g/w07tHX+PVxf3o3w+7mOuxRzzrQX7DfjMjLELxcqW1wZyH89cqbN9I2uLMQnuHqz7CyU4KrWfuchfAML96mkuHd21QiPARvU8nw7G0qGd68TSXCY/A2lQzP3qaS4W21qUR00q+nFcIzPG0PFsKrtalErDbBnYXwDE/eppLhdbWpZPTwNpUI166msxCe4cXbVDJ8eJtKhGtX01kIz/DibSoZ3r1NJcJb8DaVDM/eppLh3dtUIrwHb1PJ8OxtKhnevE0lwsfpbSoZnrxNJcObt6kkuAa1q00lw5O3qWR4XW0qGT28TSXCJaZdzYIYXq1ZEGOHNwtCuAS0q1kQw8tqFsTo7s2CEC4h7WoWxPDizYIY3r1ZEMK1q2nGiqTJvNUsiOHNmwUhvGjPxHg/kJ9GV8/JvMuV74Pa/mqh0qD2tcO5BMlfL5nHTrGJPe2g9DIWL7/865XaF2Iuhi9X3sWn2vdxLoYRrn0f52IY4dr3cS6GAa7dz86VnkN48sauDNe+j3MxjHDt+5gYG7Tp41wMI/xR+4lwbfpoi2FCR+35OBfDCC/b5o/w7jZ/Qqewbf4Iz9vmj/C+bf4Ez2Hb/BGet80f4W3b/AmupdUrPYfwtG3+CG/b5k9wFZOVnkN42jZ/hNdt80f42DZ/gsus4jZ/hNdt80f42DZ/gve4bf4IL4fb/BHep82fsCNsmz/Cy7b5I7y7zR/QajZ0mz/C886gIby5zZ/Qep5jwYqkHc/c5o/wtm3+BNfzHCtWJPUaus0f4XXb/BE+ts2f4Nr8KGNFUq+h2/wRPrbNn+B6nmPBiqQJ4M5jJIt+3z0znwZjzyndy5Xvo9/x6k20lO5LU3+5qb+N6Jc38leDy8oYXoboZUxeI6hz74NcrrwLuNLcB0Fs3fsgCB97H4TgMfo+CKLL3gdB+Nj7IARP0fdBEF32lwbhfVfeEFxPQF9Ci3BtXDmFFuHauHIKLcH1nMYltAjPezGNcG1cOYWW4HpQ4xJahGvjyim0CNfGlVNoCd7OvRhFeNqLUYTXvRhF+NiLUYLrWY1rMYrwfcoIw8dejBJcN6no0yuxnC9GEd73YhTg2u9sLUYRXfZiFOF9L0YJrhtUiSqSHdN4YkXSWM4XowTX/amMFcmOaQxYkbR7rS9GCa4bVAUrksZyvhhFeN2LUYLncy9GEZ72YhThdS9GCW4tz958TJ/GEM+x3OXKt7FcPV8djNae4uV8A4lHx7RCfvFY7gfPZwx6eq5u29+M08vAvI5s8sKR65V3kU5dhSOMHl44gnA92X4WjjC8rsIRRg8vHEG4LIRW4QjDixWOMLZ74QjCS/TCEYYXLxxhePfCEYTX4IUjDM9eOMLw5oUjCG/BC0cYnr1whOHNC0cQ3k8vHGF48sIRhlcvHEH4OL1whOHJC0cYXr1whOHDC0cIrnHRKhxheFmFI4weXjiC8BC9cIThZRWOMLp74QjCJS5ahSMMzwf9QHV7dxWOIDwFLxxhePbCEYY3LxxBuARFq3CE4dkLRxjevHAE4RoUjXr/rf50Hn4Kiq5XWkv/eBcUxdtajdeW/u0LJri0onbVX6TzUTe7/tuulhEJOb6xMapre27jXwfpZVRer8ye2L5eefdG3RPbBE/aL2DmWxiePbHN8OaJbYRrvfHMtzA8eWKb4c0T2wgXZiW2GZ48sc3w6olthg9PbCNc+wXMfAvDq9fmMHx4bQ7CNXSd+RaGF6/NYXj32hyEa/RKn149rnTmWxjevTYH4Rq6Wr6F0dlrcxjevDYH4Rq5Wr6F0dlrcxjevDYH4RK4roU8w5PX5jC8em0OwvXA0sIVSQPXyBVJDywdXJG0P3jFimSBa8KKZIHriRXJDixtWJE0cl21OQwvXpvD8O61OQjX/uAFK5KFrhErkh1YOrAi2YGllT29FromrEgWup5Ykey40kYVSdN5a0+K4c33pBCuW7M933/xPo2XnjrOXq98H7mmu2qb1yMMtMfuX/Uwqv9fkesPJ/jkGReVs6/EZeRehuoampR5gsz1yrtYQ1t92AkyDNdWH3aCDML1rMx5xgXDtdWHnSDDcG31YSfIIFwLzOYJMgzXVh92ggzDtdWHnSCD8KqtPvQEGUZrp49y/zjcRyd5niCD8KadPuCY6zmZ8wQZhmubDztBBuFd+3wU+rj05Gf+MlzbfMwlN8K1z4edIIPwoX0+7AQZhmufDzvTiuHa6sPOtCK4hiYp2plWDNdWH3amFcO11YedaYXwoK0+sCJpaLJO2WN491P2EK5nZWasSBqarFP2GN78lD2E61mZBSuSRifrlD2GNz9lD+F6VmaliqTRyTplj+HVT9lDuEr1rPv6wenvqWzieuX76CTflU289sMvXyqh9q9qfn+KbA/rcnkdGh+La26pNmsueb3kPrfUszWXZHg7znl2KsIlMA3dmksyPHm7W4ZXb3fL8OHtbhEuj+1qd8vw6u1uGT683S3C5Xu22t0yvHi7W4Z3b3eLcFGF1e6W4WW1u2V093a3CJf4bbW7ZXi2dreMbd7uFuESva12twzPq90to5u3u0W4xG+r3S3Dk7e7ZXj1drcMH97uFuEjebtbhldvd8vw4e1uCa4B3Gp3y/Di7W4Z3r3dLcJD9Ha3DC/e7pbh3dvdIjwGb3fL8KztLagiaQA3KlYkzS2FhBVJA7h0UkXS+C03rEgav9WMFUkDuB7gnUj0Jt8MqkiP0zFp8PCcU7pc8iFq+/VPP/3jT/8XCqmV0QplbmRzdHJlYW0KZW5kb2JqCjIzNiAwIG9iagpbCjIzNSAwIFIKMjM3IDAgUgoyMzkgMCBSCjI0MCAwIFIKMjQyIDAgUgoyNDMgMCBSCjI0NSAwIFIKMjQ2IDAgUgoyNDggMCBSCjI0OSAwIFIKMjUxIDAgUgoyNTIgMCBSCjI1NCAwIFIKMjU1IDAgUgoyNTcgMCBSCjI1OCAwIFIKMjYwIDAgUgoyNjEgMCBSCjI2MyAwIFIKMjY0IDAgUgoyNjYgMCBSCjI2NyAwIFIKMjY5IDAgUgoyNzAgMCBSCjI3MiAwIFIKMjczIDAgUgoyNzUgMCBSCjI3NiAwIFIKMjc4IDAgUgoyNzkgMCBSCjI4MSAwIFIKMjgyIDAgUgoyODQgMCBSCjI4NSAwIFIKMjg3IDAgUgoyODggMCBSCjI5MCAwIFIKMjkxIDAgUgoyOTMgMCBSCjI5NCAwIFIKMjk2IDAgUgoyOTcgMCBSCjI5OSAwIFIKMzAwIDAgUgozMDIgMCBSCjMwMyAwIFIKMzA1IDAgUgozMDYgMCBSCjMwOCAwIFIKMzA5IDAgUgozMTEgMCBSCjMxMiAwIFIKMzE0IDAgUgozMTUgMCBSCjMxNyAwIFIKMzE4IDAgUgozMjAgMCBSCjMyMSAwIFIKMzIzIDAgUgozMjQgMCBSCjMyNiAwIFIKMzI3IDAgUgozMjkgMCBSCjMzMCAwIFIKMzMyIDAgUgozMzMgMCBSCjMzNSAwIFIKMzM2IDAgUgozMzggMCBSCjMzOSAwIFIKMzQxIDAgUgozNDIgMCBSCjM0NCAwIFIKMzQ1IDAgUgozNDcgMCBSCjM0OCAwIFIKMzUwIDAgUgozNTEgMCBSCjM1MyAwIFIKMzU0IDAgUgozNTYgMCBSCjM1NyAwIFIKMzU5IDAgUgozNjAgMCBSCjM2MiAwIFIKMzYzIDAgUgozNjUgMCBSCjM2NiAwIFIKMzY4IDAgUgozNjkgMCBSCjM3MSAwIFIKMzcyIDAgUgozNzQgMCBSCjM3NSAwIFIKMzc3IDAgUgozNzggMCBSCjM4MCAwIFIKMzgxIDAgUgozODMgMCBSCjM4NCAwIFIKMzg2IDAgUgozODcgMCBSCjM4OSAwIFIKMzkwIDAgUgozOTIgMCBSCjM5MyAwIFIKMzk1IDAgUgozOTYgMCBSCl0KZW5kb2JqCjE5IDAgb2JqCjw8CiAgL1Jlc291cmNlcyAzIDAgUgogIC9UeXBlIC9QYWdlCiAgL01lZGlhQm94IFswIDAgNjEyIDc5Ml0KICAvQmxlZWRCb3ggWzAgMCA2MTIgNzkyXQogIC9UcmltQm94IFswIDAgNjEyIDc5Ml0KICAvUGFyZW50IDEgMCBSCiAgL0Fubm90cyAyMzYgMCBSCiAgL0NvbnRlbnRzIDM5NyAwIFIKPj4KCmVuZG9iagozOTggMCBvYmoKMTY3NjcKZW5kb2JqCjQwMCAwIG9iago8PCAvTGVuZ3RoIDQwMSAwIFIgL0ZpbHRlciAvRmxhdGVEZWNvZGUgPj4Kc3RyZWFtCnic7VlLbxMxEL7vr/AfwJ0Z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ZGVyIFsgMCAwIDAgXQovQSA0MTYgMCBSCi9IIC9JCgo+PgplbmRvYmoKNDIxIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDY5Ny4wMDUgMzEyLjE2MSA3MDYuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDQyMCAwIFIKL0ggL0kKCj4+CmVuZG9iago0MjIgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTI3LjIyNCA2OTcuMDA1IDUzOS45NDQgNzA2Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA0MjAgMCBSCi9IIC9JCgo+PgplbmRvYmoKNDI0IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDY4NS4wMDUgMzA0LjYwMSA2OTQuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDQyMyAwIFIKL0ggL0kKCj4+CmVuZG9iago0MjUgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTI3LjIyNSA2ODUuMDA1IDUzOS45NDUgNjk0Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA0MjMgMCBSCi9IIC9JCgo+PgplbmRvYmoKNDI3IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDY3My4wMDUgMjk4LjAxNyA2ODIuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDQyNiAwIFIKL0ggL0kKCj4+CmVuZG9iago0MjggMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTI3LjIyNSA2NzMuMDA1IDUzOS45NDUgNjgyLjk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA0MjYgMCBSCi9IIC9JCgo+PgplbmRvYmoKNDMwIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDY2MS4wMDUgMjk0LjU3MDk4IDY3MC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNDI5IDAgUgovSCAvSQoKPj4KZW5kb2JqCjQzMSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MjcuMjI2IDY2MS4wMDUgNTM5Ljk0NiA2NzAuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDQyOSAwIFIKL0ggL0kKCj4+CmVuZG9iago0MzMgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNjQ5LjAwNSAzMDkuNjkwOTggNjU4Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA0MzIgMCBSCi9IIC9JCgo+PgplbmRvYmoKNDM0IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUyNy4yMjUgNjQ5LjAwNSA1MzkuOTQ1IDY1OC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNDMyIDAgUgovSCAvSQoKPj4KZW5kb2JqCjQzNiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA2MzcuMDA1IDMxOC4zNjcgNjQ2Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA0MzUgMCBSCi9IIC9JCgo+PgplbmRvYmoKNDM3IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUyNy4yMjUgNjM3LjAwNSA1MzkuOTQ1IDY0Ni45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNDM1IDAgUgovSCAvSQoKPj4KZW5kb2JqCjQzOSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA2MjUuMDA1IDMxMy44MjUgNjM0Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA0MzggMCBSCi9IIC9JCgo+PgplbmRvYmoKNDQwIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUyNy4yMjUgNjI1LjAwNSA1MzkuOTQ1IDYzNC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNDM4IDAgUgovSCAvSQoKPj4KZW5kb2JqCjQ0MiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA2MTMuMDA1IDM4NS42OTIgNjIyLjk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA0NDEgMCBSCi9IIC9JCgo+PgplbmRvYmoKNDQzIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUyNy4yMjQgNjEzLjAwNSA1MzkuOTQ0IDYyMi45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNDQxIDAgUgovSCAvSQoKPj4KZW5kb2JqCjQ0NSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA2MDEuMDA1IDQwMC40MjQgNjEwLjk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA0NDQgMCBSCi9IIC9JCgo+PgplbmRvYmoKNDQ2IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUyNy4yMjQgNjAxLjAwNSA1MzkuOTQ0IDYxMC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNDQ0IDAgUgovSCAvSQoKPj4KZW5kb2JqCjQ0OCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA1ODkuMDA1IDQyMy4zNDQgNTk4Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA0NDcgMCBSCi9IIC9JCgo+PgplbmRvYmoKNDQ5IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUyNy4yMjQgNTg5LjAwNSA1MzkuOTQ0IDU5OC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNDQ3IDAgUgovSCAvSQoKPj4KZW5kb2JqCjQ1MSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA1NzcuMDA1IDQyOC44OTMgNTg2Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA0NTAgMCBSCi9IIC9JCgo+PgplbmRvYmoKNDUyIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUyNy4yMjYgNTc3LjAwNSA1MzkuOTQ2IDU4Ni45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNDUwIDAgUgovSCAvSQoKPj4KZW5kb2JqCjQ1NCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA1NjUuMDA1IDQzMS4wODQgNTc0Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA0NTMgMCBSCi9IIC9JCgo+PgplbmRvYmoKNDU1IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUyNy4yMjUgNTY1LjAwNSA1MzkuOTQ1IDU3NC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNDUzIDAgUgovSCAvSQoKPj4KZW5kb2JqCjQ1NyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA1NTMuMDA1IDQyOC40NDQgNTYyLjk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA0NTYgMCBSCi9IIC9JCgo+PgplbmRvYmoKNDU4IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUyNy4yMjQgNTUzLjAwNSA1MzkuOTQ0IDU2Mi45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNDU2IDAgUgovSCAvSQoKPj4KZW5kb2JqCjQ2MCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA1NDEuMDA1IDQwNC4wOCA1NTAuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDQ1OSAwIFIKL0ggL0kKCj4+CmVuZG9iago0NjEgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTI3LjIyNSA1NDEuMDA1IDUzOS45NDUgNTUwLjk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA0NTkgMCBSCi9IIC9JCgo+PgplbmRvYmoKNDYzIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDgwLjAgNTI5LjAwNSAxMjkuOTY0IDUzOC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNDYyIDAgUgovSCAvSQoKPj4KZW5kb2JqCjQ2NCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MjcuMTggNTI5LjAwNSA1MzkuODk5OTYgNTM4Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA0NjIgMCBSCi9IIC9JCgo+PgplbmRvYmoKNDY2IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDgwLjAgNTE3LjAwNSAxMTguOTc4IDUyNi45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNDY1IDAgUgovSCAvSQoKPj4KZW5kb2JqCjQ2NyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MjcuMjI5IDUxNy4wMDUgNTM5Ljk0OSA1MjYuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDQ2NSAwIFIKL0ggL0kKCj4+CmVuZG9iago0NjkgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNTA1LjAwNSAxNjcuNjYgNTE0Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA0NjggMCBSCi9IIC9JCgo+PgplbmRvYmoKNDcwIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUyNy4xNzUgNTA1LjAwNSA1MzkuODk0OTYgNTE0Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA0NjggMCBSCi9IIC9JCgo+PgplbmRvYmoKNDcyIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDgwLjAgNDkzLjAwNSAxNTAuMDgyIDUwMi45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNDcxIDAgUgovSCAvSQoKPj4KZW5kb2JqCjQ3MyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MjcuMjI3IDQ5My4wMDUgNTM5Ljk0Njk2IDUwMi45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNDcxIDAgUgovSCAvSQoKPj4KZW5kb2JqCjQ3NSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA4MC4wIDQ4MS4wMDUgMTM4LjA5NyA0OTAuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDQ3NCAwIFIKL0ggL0kKCj4+CmVuZG9iago0NzYgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTI3LjIyOSA0ODEuMDA1IDUzOS45NDkgNDkwLjk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA0NzQgMCBSCi9IIC9JCgo+PgplbmRv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hMXCWcFp4Szpi4WzlJpwOnaPhdNJpHDSQct+iT9JsV+szI4HQ88s62Dw5/BgYXF4KKji8GCY3eHBlekwyanJH2doPXMaLA1PSac0PBoQK40mxAir9Ns/dpCiNwlZFN23DwLmXE72ckOt10Zzm6Z4Y6QLKl0VyyXR9WG96cZhXLLS5y+Glzn9CmVuZHN0cmVhbQplbmRvYmoKNTAwIDAgb2JqCjU0MzEKZW5kb2JqCjUwMSAwIG9iagoyMAplbmRvYmoKNTAyIDAgb2JqCjM4OAplbmRvYmoKNTAzIDAgb2JqCjExOTM1CmVuZG9iago1MDQgMCBvYmoKMjcKZW5kb2JqCjUwNSAwIG9iago1NzEKZW5kb2JqCjUwNiAwIG9iagoxMDMxNwplbmRvYmoKNTA3IDAgb2JqCjIyCmVuZG9iago1MDggMCBvYmoKNTE5CmVuZG9iagoxIDAgb2JqCjw8IC9UeXBlIC9QYWdlcwovQ291bnQgMjQKL0tpZHMgWzggMCBSIDE4IDAgUiAxOSAwIFIgMjAgMCBSIDIxIDAgUiAyMiAwIFIgMzEgMCBSIDM0IDAgUiAzNyAwIFIgNDIgMCBSIDUxIDAgUiA1NCAwIFIgNTcgMCBSIDIxNiAwIFIgMjE5IDAgUiAyMjIgMCBSIDIyNSAwIFIgMjI4IDAgUiAyMzEgMCBSIDM5OSAwIFIgNDAyIDAgUiA0MDUgMCBSIDQwOCAwIFIgNDExIDAgUiBdID4+CmVuZG9iagoyIDAgb2JqCjw8CiAgL1R5cGUgL0NhdGFsb2cKICAvUGFnZXMgMSAwIFIKICAvTGFuZyAoZW4pCiAgL01ldGFkYXRhIDcgMCBSCiAgL1BhZ2VMYWJlbHMgOSAwIFIKPj4KCmVuZG9iagozIDAgb2JqCjw8Ci9Gb250IDw8CiAgL0YxNyA0ODUgMCBSCiAgL0YxNSA0OTEgMCBSCiAgL0YxNiA0OTcgMCBSCj4+Ci9Qcm9jU2V0IFsgL1BERiAvSW1hZ2VCIC9JbWFnZUMgL1RleHQgXQovWE9iamVjdCA8PAogIC9JbTEgMTAgMCBSCiAgL0ltNCAyNCAwIFIKICAvSW0yIDExIDAgUgogIC9JbTMgMjMgMCBSCj4+Ci9Db2xvclNwYWNlIDw8CiAgL0RlZmF1bHRSR0IgNiAwIFIKPj4KPj4KZW5kb2JqCjkgMCBvYmoKPDwgL051bXMgWzAgPDwgL1AgKDEpID4+CiAxIDw8IC9QIChpaSkgPj4KIDIgPDwgL1AgKGlpaSkgPj4KIDMgPDwgL1AgKGl2KSA+PgogNCA8PCAvUCAodikgPj4KIDUgPDwgL1AgKHZpKSA+PgogNiA8PCAvUCAoMSkgPj4KIDcgPDwgL1AgKDIpID4+CiA4IDw8IC9QICgzKSA+PgogOSA8PCAvUCAoNCkgPj4KIDEwIDw8IC9QICg1KSA+PgogMTEgPDwgL1AgKDYpID4+CiAxMiA8PCAvUCAoNykgPj4KIDEzIDw8IC9QICg4KSA+PgogMTQgPDwgL1AgKDkpID4+CiAxNSA8PCAvUCAoMTApID4+CiAxNiA8PCAvUCAoMTEpID4+CiAxNyA8PCAvUCAoMTIpID4+CiAxOCA8PCAvUCAoMTMpID4+CiAxOSA8PCAvUCAoMTQpID4+CiAyMCA8PCAvUCAoMTUpID4+CiAyMSA8PCAvUCAoMTYpID4+CiAyMiA8PCAvUCAoMTcpID4+CiAyMyA8PCAvUCAoMTgpID4+Cl0gPj4KCmVuZG9iago0NSAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFs0MiAwIFIgL1hZWiA3Mi4wIDQ2My4yIG51bGxdCj4+CmVuZG9iago2MCAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyMiAwIFIgL1hZWiA3Mi4wIDcyMC4wIG51bGxdCj4+CmVuZG9iago2NCAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFszMSAwIFIgL1hZWiA3Mi4wIDcyMC4wIG51bGxdCj4+CmVuZG9iago2NyAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFszMSAwIFIgL1hZWiA3Mi4wIDcwMC44IG51bGxdCj4+CmVuZG9iago3MCAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFszMSAwIFIgL1hZWiA3Mi4wIDY1OC40IG51bGxdCj4+CmVuZG9iago3MyAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFszMSAwIFIgL1hZWiA3Mi4wIDYzOC4wIG51bGxdCj4+CmVuZG9iago3NiAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFszMSAwIFIgL1hZWiA3Mi4wIDU4Ni4wIG51bGxdCj4+CmVuZG9iago3OSAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFszMSAwIFIgL1hZWiA3Mi4wIDUzNC4wIG51bGxdCj4+CmVuZG9iago4MiAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFszMSAwIFIgL1hZWiA3Mi4wIDQ4Mi4wIG51bGxdCj4+CmVuZG9iago4NSAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFszMSAwIFIgL1hZWiA3Mi4wIDQzMC4wIG51bGxdCj4+CmVuZG9iago4OCAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFszMSAwIFIgL1hZWiA3Mi4wIDM3OC4wIG51bGxdCj4+CmVuZG9iago5MSAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFszMSAwIFIgL1hZWiA3Mi4wIDMyNi4wIG51bGxdCj4+CmVuZG9iago5NCAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFszMSAwIFIgL1hZWiA3Mi4wIDMwNS42IG51bGxdCj4+CmVuZG9iago5NyAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFszMSAwIFIgL1hZWiA3Mi4wIDI2NS42IG51bGxdCj4+CmVuZG9iagoxMDAgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMzEgMCBSIC9YWVogNzIuMCAyMjUuNiBudWxsXQo+PgplbmRvYmoKMTAzIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzMxIDAgUiAvWFlaIDcyLjAgMTg1LjU5OTk4IG51bGxdCj4+CmVuZG9iagoxMDYgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMzEgMCBSIC9YWVogNzIuMCAxNDUuNTk5OTggbnVsbF0KPj4KZW5kb2JqCjEwOSAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFszNCAwIFIgL1hZWiA3Mi4wIDcyMC4wIG51bGxdCj4+CmVuZG9iagoxMTIgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMzQgMCBSIC9YWVogNzIuMCA3MDAuOCBudWxsXQo+PgplbmRvYmoKMTE1IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzM0IDAgUiAvWFlaIDcyLjAgNjI2LjQgbnVsbF0KPj4KZW5kb2JqCjExOCAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFszNCAwIFIgL1hZWiA3Mi4wIDU1OC4wIG51bGxdCj4+CmVuZG9iagoxMjEgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMzQgMCBSIC9YWVogNzIuMCA0ODkuNiBudWxsXQo+PgplbmRvYmoKMTI0IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzM3IDAgUiAvWFlaIDcyLjAgNzIwLjAgbnVsbF0KPj4KZW5kb2JqCjEyNyAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFszNyAwIFIgL1hZWiA3Mi4wIDY3OC44IG51bGxdCj4+CmVuZG9iagoxMzAgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMzcgMCBSIC9YWVogNzIuMCA2MDIuNCBudWxsXQo+PgplbmRvYmoKMTMzIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzQyIDAgUiAvWFlaIDcyLjAgNzIwLjAgbnVsbF0KPj4KZW5kb2JqCjEzNiAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFs0MiAwIFIgL1hZWiA3Mi4wIDcwMC44IG51bGxdCj4+CmVuZG9iagoxMzkgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNDIgMCBSIC9YWVogNzIuMCA2MDAuNCBudWxsXQo+PgplbmRvYmoKMTQyIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzUxIDAgUiAvWFlaIDcyLjAgNzIwLjAgbnVsbF0KPj4KZW5kb2JqCjE0NSAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFs1MSAwIFIgL1hZWiA3Mi4wIDY2Ni43NDkgbnVsbF0KPj4KZW5kb2JqCjE0OCAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFs1MSAwIFIgL1hZWiA3Mi4wIDYwMi4yMTcgbnVsbF0KPj4KZW5kb2JqCjE1MSAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFs1MSAwIFIgL1hZWiA3Mi4wIDUyNS42ODUgbnVsbF0KPj4KZW5kb2JqCjE1NCAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFs1MSAwIFIgL1hZWiA3Mi4wIDQ0OS4xNTMgbnVsbF0KPj4KZW5kb2JqCjE1NyAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFs1MSAwIFIgL1hZWiA3Mi4wIDM3Mi42MjEgbnVsbF0KPj4KZW5kb2JqCjE2MCAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFs1MSAwIFIgL1hZWiA3Mi4wIDMwOC4wODkgbnVsbF0KPj4KZW5kb2JqCjE2MyAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFs1MSAwIFIgL1hZWiA3Mi4wIDI0My41NTcgbnVsbF0KPj4KZW5kb2JqCjE2NiAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFs1MSAwIFIgL1hZWiA3Mi4wIDE3OS4wMjUwMiBudWxsXQo+PgplbmRvYmoKMTY5IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzUxIDAgUiAvWFlaIDcyLjAgMTE0LjQ5Mjk4IG51bGxdCj4+CmVuZG9iagoxNzIgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNTQgMCBSIC9YWVogNzIuMCA3MDguMCBudWxsXQo+PgplbmRvYmoKMTc1IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzU0IDAgUiAvWFlaIDcyLjAgNjQzLjk5OCBudWxsXQo+PgplbmRvYmoKMTc4IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzU0IDAgUiAvWFlaIDcyLjAgNTc5Ljk5NiBudWxsXQo+PgplbmRvYmoKMTgxIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzU0IDAgUiAvWFlaIDcyLjAgNTE1Ljk5NCBudWxsXQo+PgplbmRvYmoKMTg0IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzU0IDAgUiAvWFlaIDcyLjAgNDUxLjk5MiBudWxsXQo+PgplbmRvYmoKMTg3IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzU0IDAgUiAvWFlaIDcyLjAgMzc1Ljk5IG51bGxdCj4+CmVuZG9iagoxOTAgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNTQgMCBSIC9YWVogNzIuMCAyOTkuOTg4IG51bGxdCj4+CmVuZG9iagoxOTMgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNTQgMCBSIC9YWVogNzIuMCAyMzUuOTg2IG51bGxdCj4+CmVuZG9iagoxOTYgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNTQgMCBSIC9YWVogNzIuMCAxNTkuOTg0MDEgbnVsbF0KPj4KZW5kb2JqCjE5OSAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFs1NyAwIFIgL1hZWiA3Mi4wIDcyMC4wIG51bGxdCj4+CmVuZG9iagoyMDIgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNTcgMCBSIC9YWVogNzIuMCA2NDguMzM4IG51bGxdCj4+CmVuZG9iagoyMDUgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNTcgMCBSIC9YWVogNzIuMCA1NzAuMjk4IG51bGxdCj4+CmVuZG9iagoyMDggMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNTcgMCBSIC9YWVogNzIuMCA1MDQuMjU4IG51bGxdCj4+CmVuZG9iagoyMTEgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNTcgMCBSIC9YWVogNzIuMCA0MzguMjE4IG51bGxdCj4+CmVuZG9iagoyMzQgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNTcgMCBSIC9YWVogNzIuMCAzNjAuMTc4IG51bGxdCj4+CmVuZG9iagoyMzggMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNTcgMCBSIC9YWVogNzIuMCAyODIuMTM4IG51bGxdCj4+CmVuZG9iagoyNDEgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNTcgMCBSIC9YWVogNzIuMCAyMDQuMDk4MDIgbnVsbF0KPj4KZW5kb2JqCjI0NCAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFs1NyAwIFIgL1hZWiA3Mi4wIDEzOC4wNTc5OCBudWxsXQo+PgplbmRvYmoKMjQ3IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzIxNiAwIFIgL1hZWiA3Mi4wIDcyMC4wIG51bGxdCj4+CmVuZG9iagoyNTAgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjE2IDAgUiAvWFlaIDcyLjAgNjYwLjk0NiBudWxsXQo+PgplbmRvYmoKMjUzIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzIxNiAwIFIgL1hZWiA3Mi4wIDU5NS42OTYgbnVsbF0KPj4KZW5kb2JqCjI1NiAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyMTYgMCBSIC9YWVogNzIuMCA1MzAuNDQ2IG51bGxdCj4+CmVuZG9iagoyNTkgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjE2IDAgUiAvWFlaIDcyLjAgNDY1LjE5NTk4IG51bGxdCj4+CmVuZG9iagoyNjIgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjE2IDAgUiAvWFlaIDcyLjAgMzk5Ljk0NiBudWxsXQo+PgplbmRvYmoKMjY1IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzIxNiAwIFIgL1hZWiA3Mi4wIDMzNC42OTYgbnVsbF0KPj4KZW5kb2JqCjI2OCAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyMTYgMCBSIC9YWVogNzIuMCAyNjkuNDQ2IG51bGxdCj4+CmVuZG9iagoyNzEgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjE2IDAgUiAvWFlaIDcyLjAgMTkyLjE5NTk4IG51bGxdCj4+CmVuZG9iagoyNzQgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjE2IDAgUiAvWFlaIDcyLjAgMTE0Ljk0NTk4NCBudWxsXQo+PgplbmRvYmoKMjc3IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzIxOSAwIFIgL1hZWiA3Mi4wIDY5Ni4wIG51bGxdCj4+CmVuZG9iagoyODAgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjE5IDAgUiAvWFlaIDcyLjAgNjMyLjI1IG51bGxdCj4+CmVuZG9iagoyODMgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjE5IDAgUiAvWFlaIDcyLjAgNTQ0LjUgbnVsbF0KPj4KZW5kb2JqCjI4NiAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyMTkgMCBSIC9YWVogNzIuMCA0NjguNzUgbnVsbF0KPj4KZW5kb2JqCjI4OSAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyMTkgMCBSIC9YWVogNzIuMCAzOTMuMCBudWxsXQo+PgplbmRvYmoKMjkyIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzIxOSAwIFIgL1hZWiA3Mi4wIDMyOS4yNSBudWxsXQo+PgplbmRvYmoKMjk1IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzIxOSAwIFIgL1hZWiA3Mi4wIDI2NS41IG51bGxdCj4+CmVuZG9iagoyOTggMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjE5IDAgUiAvWFlaIDcyLjAgMTg5Ljc1IG51bGxdCj4+CmVuZG9iagozMDEgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjE5IDAgUiAvWFlaIDcyLjAgMTE0LjAgbnVsbF0KPj4KZW5kb2JqCjMwNCAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyMjIgMCBSIC9YWVogNzIuMCA2OTYuMCBudWxsXQo+PgplbmRvYmoKMzA3IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzIyMiAwIFIgL1hZWiA3Mi4wIDYzMS4zOTE5NyBudWxsXQo+PgplbmRvYmoKMzEwIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzIyMiAwIFIgL1hZWiA3Mi4wIDU2Ni43ODQgbnVsbF0KPj4KZW5kb2JqCjMxMyAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyMjIgMCBSIC9YWVogNzIuMCA1MDIuMTc2IG51bGxdCj4+CmVuZG9iagozMTYgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjIyIDAgUiAvWFlaIDcyLjAgNDM3LjU2OCBudWxsXQo+PgplbmRvYmoKMzE5IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzIyMiAwIFIgL1hZWiA3Mi4wIDM3Mi45NiBudWxsXQo+PgplbmRvYmoKMzIyIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzIyMiAwIFIgL1hZWiA3Mi4wIDMwOC4zNTIgbnVsbF0KPj4KZW5kb2JqCjMyNSAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyMjIgMCBSIC9YWVogNzIuMCAyNDMuNzQzOTkgbnVsbF0KPj4KZW5kb2JqCjMyOCAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyMjIgMCBSIC9YWVogNzIuMCAxNzkuMTM1OTkgbnVsbF0KPj4KZW5kb2JqCjMzMSAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyMjIgMCBSIC9YWVogNzIuMCAxMTQuNTI4MDE1IG51bGxdCj4+CmVuZG9iagozMzQgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjI1IDAgUiAvWFlaIDcyLjAgNjk2LjAgbnVsbF0KPj4KZW5kb2JqCjMzNyAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyMjUgMCBSIC9YWVogNzIuMCA2MTguMDAxIG51bGxdCj4+CmVuZG9iagozNDAgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjI1IDAgUiAvWFlaIDcyLjAgNTQwLjAwMiBudWxsXQo+PgplbmRvYmoKMzQzIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzIyNSAwIFIgL1hZWiA3Mi4wIDQ3NC4wMDMgbnVsbF0KPj4KZW5kb2JqCjM0NiAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyMjUgMCBSIC9YWVogNzIuMCAzODQuMDA0IG51bGxdCj4+CmVuZG9iagozNDkgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjI1IDAgUiAvWFlaIDcyLjAgMzA2LjAwNSBudWxsXQo+PgplbmRvYmoKMzUyIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzIyNSAwIFIgL1hZWiA3Mi4wIDIyOC4wMDYwMSBudWxsXQo+PgplbmRvYmoKMzU1IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzIyNSAwIFIgL1hZWiA3Mi4wIDE1MC4wMDcwMiBudWxsXQo+PgplbmRvYmoKMzU4IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzIyOCAwIFIgL1hZWiA3Mi4wIDcyMC4wIG51bGxdCj4+CmVuZG9iagozNjEgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjI4IDAgUiAvWFlaIDcyLjAgNjQ5LjM5IG51bGxdCj4+CmVuZG9iagozNjQgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjI4IDAgUiAvWFlaIDcyLjAgNTcyLjcxNyBudWxsXQo+PgplbmRvYmoKMzY3IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzIyOCAwIFIgL1hZWiA3Mi4wIDUwOC4wNDQgbnVsbF0KPj4KZW5kb2JqCjM3MCAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyMjggMCBSIC9YWVogNzIuMCA0MzEuMzcxIG51bGxdCj4+CmVuZG9iagozNzMgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjI4IDAgUiAvWFlaIDcyLjAgMzY2LjY5OCBudWxsXQo+PgplbmRvYmoKMzc2IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzIyOCAwIFIgL1hZWiA3Mi4wIDI3OC4wMjUgbnVsbF0KPj4KZW5kb2JqCjM3OSAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyMjggMCBSIC9YWVogNzIuMCAyMTMuMzUxOTkgbnVsbF0KPj4KZW5kb2JqCjM4MiAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyMjggMCBSIC9YWVogNzIuMCAxNDguNjc5MDIgbnVsbF0KPj4KZW5kb2JqCjM4NSAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyMzEgMCBSIC9YWVogNzIuMCA3MjAuMCBudWxsXQo+PgplbmRvYmoKMzg4IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzIzMSAwIFIgL1hZWiA3Mi4wIDY0OC45NDYgbnVsbF0KPj4KZW5kb2JqCjM5MSAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyMzEgMCBSIC9YWVogNzIuMCA1ODMuNjk2IG51bGxdCj4+CmVuZG9iagozOTQgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjMxIDAgUiAvWFlaIDcyLjAgNTE4LjQ0NiBudWxsXQo+PgplbmRvYmoKNDE2IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzIzMSAwIFIgL1hZWiA3Mi4wIDQ1My4xOTYgbnVsbF0KPj4KZW5kb2JqCjQyMCAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyMzEgMCBSIC9YWVogNzIuMCAzNzUuOTQ2IG51bGxdCj4+CmVuZG9iago0MjMgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjMxIDAgUiAvWFlaIDcyLjAgMzEwLjY5NiBudWxsXQo+PgplbmRvYmoKNDI2IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzIzMSAwIFIgL1hZWiA3Mi4wIDI0NS40NDYwMSBudWxsXQo+PgplbmRvYmoKNDI5IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzIzMSAwIFIgL1hZWiA3Mi4wIDE4MC4xOTU5OCBudWxsXQo+PgplbmRvYmoKNDMyIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzIzMSAwIFIgL1hZWiA3Mi4wIDExNC45NDU5ODQgbnVsbF0KPj4KZW5kb2JqCjQzNSAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFszOTkgMCBSIC9YWVogNzIuMCA3MDguMCBudWxsXQo+PgplbmRvYmoKNDM4IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzM5OSAwIFIgL1hZWiA3Mi4wIDY0My42IG51bGxdCj4+CmVuZG9iago0NDEgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMzk5IDAgUiAvWFlaIDcyLjAgNTc5LjIgbnVsbF0KPj4KZW5kb2JqCjQ0NCAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFszOTkgMCBSIC9YWVogNzIuMCA1MTQuOCBudWxsXQo+PgplbmRvYmoKNDQ3IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzM5OSAwIFIgL1hZWiA3Mi4wIDQ1MC40IG51bGxdCj4+CmVuZG9iago0NTAgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMzk5IDAgUiAvWFlaIDcyLjAgMzg2LjAgbnVsbF0KPj4KZW5kb2JqCjQ1MyAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFszOTkgMCBSIC9YWVogNzIuMCAzMjEuNiBudWxsXQo+PgplbmRvYmoKNDU2IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzM5OSAwIFIgL1hZWiA3Mi4wIDI1Ny4yIG51bGxdCj4+CmVuZG9iago0NTkgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMzk5IDAgUiAvWFlaIDcyLjAgMTkyLjc5OTk5IG51bGxdCj4+CmVuZG9iago0NjIgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNDAyIDAgUiAvWFlaIDcyLjAgNzIwLjAgbnVsbF0KPj4KZW5kb2JqCjQ2NSAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFs0MDUgMCBSIC9YWVogNzIuMCA3MjAuMCBudWxsXQo+PgplbmRvYmoKNDY4IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzQwNSAwIFIgL1hZWiA3Mi4wIDY3OC44IG51bGxdCj4+CmVuZG9iago0NzEgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNDA4IDAgUiAvWFlaIDcyLjAgNzIwLjAgbnVsbF0KPj4KZW5kb2JqCjQ3NCAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFs0MTEgMCBSIC9YWVogNzIuMCA3MjAuMCBudWxsXQo+PgplbmRvYmoKNDc3IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzQxMSAwIFIgL1hZWiA3Mi4wIDY3OC44IG51bGxdCj4+CmVuZG9iagp4cmVmCjAgNTA5CjAwMDAwMDAwMDAgNjU1MzUgZiAKMDAwMDI3NjY0NCAwMDAwMCBuIAowMDAwMjc2ODc1IDAwMDAwIG4gCjAwMDAyNzY5ODAgMDAwMDAgbiAKMDAwMDAwMDAxNSAwMDAwMCBuIAowMDAwMDAwMTEyIDAwMDAwIG4gCjAwMDAwMDI3OTQgMDAwMDAgbiAKMDAwMDAwMjgyNyAwMDAwMCBuIAowMDAwMTA2MzE4IDAwMDAwIG4gCjAwMDAyNzcyMDcgMDAwMDAgbiAKMDAwMDAwMzY5NiAwMDAwMCBuIAowMDAwMDUyMjIzIDAwMDAwIG4gCjAwMDAxMDU0ODUgMDAwMDAgbiAKMDAwMDEwNTUwNiAwMDAwMCBuIAowMDAwMTA1NTI2IDAwMDAwIG4gCjAwMDAxMDU1NDggMDAwMDAgbiAKMDAwMDEwNTU3MCAwMDAwMCBuIAowMDAwMTA2NDg1IDAwMDAwIG4gCjAwMDAxNzY3ODEgMDAwMDAgbiAKMDAwMDIyMTExMyAwMDAwMCBuIAowMDAwMjQzNTUwIDAwMDAwIG4gCjAwMDAxMjg5NTUgMDAwMDAgbiAKMDAwMDEyMDk2OCAwMDAwMCBuIAowMDAwMTA2NTA1IDAwMDAwIG4gCjAwMDAxMTI2NzYgMDAwMDAgbiAKMDAwMDExOTg1NiAwMDAwMCBuIAowMDAwMTE5ODc3IDAwMDAwIG4gCjAwMDAxMTk4OTggMDAwMDAgbiAKMDAwMDEyMDk0MSAwMDAwMCBuIAowMDAwMTIwMDkzIDAwMDAwIG4gCjAwMDAxMjExNTMgMDAwMDAgbiAKMDAwMDEyMjcyNSAwMDAwMCBuIAowMDAwMTIxMTczIDAwMDAwIG4gCjAwMDAxMjI4OTMgMDAwMDAgbiAKMDAwMDEyMzc2NiAwMDAwMCBuIAowMDAwMTIyOTE0IDAwMDAwIG4gCjAwMDAxMjM5MzQgMDAwMDAgbiAKMDAwMDEyNTQ1NiAwMDAwMCBuIAowMDAwMTIzOTU0IDAwMDAwIG4gCjAwMDAxMjU0MjkgMDAwMDAgbiAKMDAwMDEyNDE2NCAwMDAwMCBuIAowMDAwMTI1NjQxIDAwMDAwIG4gCjAwMDAxMjc1MzUgMDAwMDAgbiAKMDAwMDEyNTY2MiAwMDAwMCBuIAowMDAwMTI3NzAzIDAwMDAwIG4gCjAwMDAyNzc2NDkgMDAwMDAgbiAKMDAwMDEyNzcyNCAwMDAwMCBuIAowMDAwMTI4OTIxIDAwMDAwIG4gCjAwMDAxMjc4NjEgMDAwMDAgbiAKMDAwMDEyODAwMSAwMDAwMCBuIAowMDAwMTI5MTQwIDAwMDAwIG4gCjAwMDAxMzA5NzEgMDAwMDAgbiAKMDAwMDEyOTE2MCAwMDAwMCBuIAowMDAwMTMxMTM5IDAwMDAwIG4gCjAwMDAxMzI5ODUgMDAwMDAgbiAKMDAwMDEzMTE2MCAwMDAwMCBuIAowMDAwMTMzMTUzIDAwMDAwIG4gCjAwMDAxMzQ3MzQgMDAwMDAgbiAKMDAwMDEzMzE3NCAwMDAwMCBuIAowMDAwMTM0OTAyIDAwMDAwIG4gCjAwMDAyNzc3MjcgMDAwMDAgbiAKMDAwMDEzNDkyMyAwMDAwMCBuIAowMDAwMTc1OTcxIDAwMDAwIG4gCjAwMDAxMzUwNTkgMDAwMDAgbiAKMDAwMDI3NzgwNSAwMDAwMCBuIAowMDAwMTM1MjAzIDAwMDAwIG4gCjAwMDAxMzUzNDAgMDAwMDAgbiAKMDAwMDI3Nzg4MyAwMDAwMCBuIAowMDAwMTM1NDgwIDAwMDAwIG4gCjAwMDAxMzU2MTggMDAwMDAgbiAKMDAwMDI3Nzk2MSAwMDAwMCBuIAowMDAwMTM1NzU2IDAwMDAwIG4gCjAwMDAxMzU4OTYgMDAwMDAgbiAKMDAwMDI3ODAzOSAwMDAwMCBuIAowMDAwMTM2MDM4IDAwMDAwIG4gCjAwMDAxMzYxNzYgMDAwMDAgbiAKMDAwMDI3ODExNyAwMDAwMCBuIAowMDAwMTM2MzE2IDAwMDAwIG4gCjAwMDAxMzY0NTQgMDAwMDAgbiAKMDAwMDI3ODE5NSAwMDAwMCBuIAowMDAwMTM2NTk0IDAwMDAwIG4gCjAwMDAxMzY3MzIgMDAwMDAgbiAKMDAwMDI3ODI3MyAwMDAwMCBuIAowMDAwMTM2ODcyIDAwMDAwIG4gCjAwMDAxMzcwMDggMDAwMDAgbiAKMDAwMDI3ODM1MSAwMDAwMCBuIAowMDAwMTM3MTQ4IDAwMDAwIG4gCjAwMDAxMzcyODggMDAwMDAgbiAKMDAwMDI3ODQyOSAwMDAwMCBuIAowMDAwMTM3NDI4IDAwMDAwIG4gCjAwMDAxMzc1NjYgMDAwMDAgbiAKMDAwMDI3ODUwNyAwMDAwMCBuIAowMDAwMTM3NzA2IDAwMDAwIG4gCjAwMDAxMzc4NDQgMDAwMDAgbiAKMDAwMDI3ODU4NSAwMDAwMCBuIAowMDAwMTM3OTg0IDAwMDAwIG4gCjAwMDAxMzgxMjIgMDAwMDAgbiAKMDAwMDI3ODY2MyAwMDAwMCBuIAowMDAwMTM4MjYyIDAwMDAwIG4gCjAwMDAxMzg0MDIgMDAwMDAgbiAKMDAwMDI3ODc0MSAwMDAwMCBuIAowMDAwMTM4NTQyIDAwMDAwIG4gCjAwMDAxMzg2ODIgMDAwMDAgbiAKMDAwMDI3ODgyMCAwMDAwMCBuIAowMDAwMTM4ODI0IDAwMDAwIG4gCjAwMDAxMzg5NjQgMDAwMDAgbiAKMDAwMDI3ODkwMyAwMDAwMCBuIAowMDAwMTM5MTA2IDAwMDAwIG4gCjAwMDAxMzkyNDggMDAwMDAgbiAKMDAwMDI3ODk4NiAwMDAwMCBuIAowMDAwMTM5MzkyIDAwMDAwIG4gCjAwMDAxMzk1MzMgMDAwMDAgbiAKMDAwMDI3OTA2NSAwMDAwMCBuIAowMDAwMTM5Njc5IDAwMDAwIG4gCjAwMDAxMzk4MjEgMDAwMDAgbiAKMDAwMDI3OTE0NCAwMDAwMCBuIAowMDAwMTM5OTY3IDAwMDAwIG4gCjAwMDAxNDAxMDkgMDAwMDAgbiAKMDAwMDI3OTIyMyAwMDAwMCBuIAowMDAwMTQwMjU1IDAwMDAwIG4gCjAwMDAxNDAzOTUgMDAwMDAgbiAKMDAwMDI3OTMwMiAwMDAwMCBuIAowMDAwMTQwNTM5IDAwMDAwIG4gCjAwMDAxNDA2NzkgMDAwMDAgbiAKMDAwMDI3OTM4MSAwMDAwMCBuIAowMDAwMTQwODIxIDAwMDAwIG4gCjAwMDAxNDA5NjAgMDAwMDAgbiAKMDAwMDI3OTQ2MCAwMDAwMCBuIAowMDAwMTQxMTA0IDAwMDAwIG4gCjAwMDAxNDEyNDQgMDAwMDAgbiAKMDAwMDI3OTUzOSAwMDAwMCBuIAowMDAwMTQxMzg2IDAwMDAwIG4gCjAwMDAxNDE1MjYgMDAwMDAgbiAKMDAwMDI3OTYxOCAwMDAwMCBuIAowMDAwMTQxNjY4IDAwMDAwIG4gCjAwMDAxNDE4MDcgMDAwMDAgbiAKMDAwMDI3OTY5NyAwMDAwMCBuIAowMDAwMTQxOTQ5IDAwMDAwIG4gCjAwMDAxNDIwODkgMDAwMDAgbiAKMDAwMDI3OTc3NiAwMDAwMCBuIAowMDAwMTQyMjMzIDAwMDAwIG4gCjAwMDAxNDIzNzMgMDAwMDAgbiAKMDAwMDI3OTg1NSAwMDAwMCBuIAowMDAwMTQyNTE3IDAwMDAwIG4gCjAwMDAxNDI2NTYgMDAwMDAgbiAKMDAwMDI3OTkzNCAwMDAwMCBuIAowMDAwMTQyODAwIDAwMDAwIG4gCjAwMDAxNDI5NDIgMDAwMDAgbiAKMDAwMDI4MDAxNSAwMDAwMCBuIAowMDAwMTQzMDg2IDAwMDAwIG4gCjAwMDAxNDMyMjYgMDAwMDAgbiAKMDAwMDI4MDA5NiAwMDAwMCBuIAowMDAwMTQzMzY2IDAwMDAwIG4gCjAwMDAxNDM1MDYgMDAwMDAgbiAKMDAwMDI4MDE3NyAwMDAwMCBuIAowMDAwMTQzNjUwIDAwMDAwIG4gCjAwMDAxNDM3OTAgMDAwMDAgbiAKMDAwMDI4MDI1OCAwMDAwMCBuIAowMDAwMTQzOTM0IDAwMDAwIG4gCjAwMDAxNDQwNzQgMDAwMDAgbiAKMDAwMDI4MDMzOSAwMDAwMCBuIAowMDAwMTQ0MjE0IDAwMDAwIG4gCjAwMDAxNDQzNTQgMDAwMDAgbiAKMDAwMDI4MDQyMCAwMDAwMCBuIAowMDAwMTQ0NDk4IDAwMDAwIG4gCjAwMDAxNDQ2MzggMDAwMDAgbiAKMDAwMDI4MDUwMSAwMDAwMCBuIAowMDAwMTQ0NzgyIDAwMDAwIG4gCjAwMDAxNDQ5MjIgMDAwMDAgbiAKMDAwMDI4MDU4NCAwMDAwMCBuIAowMDAwMTQ1MDY2IDAwMDAwIG4gCjAwMDAxNDUyMDggMDAwMDAgbiAKMDAwMDI4MDY2NyAwMDAwMCBuIAowMDAwMTQ1MzU0IDAwMDAwIG4gCjAwMDAxNDU0OTggMDAwMDAgbiAKMDAwMDI4MDc0NiAwMDAwMCBuIAowMDAwMTQ1NjQyIDAwMDAwIG4gCjAwMDAxNDU3ODQgMDAwMDAgbiAKMDAwMDI4MDgyNyAwMDAwMCBuIAowMDAwMTQ1OTMyIDAwMDAwIG4gCjAwMDAxNDYwNzUgMDAwMDAgbiAKMDAwMDI4MDkwOCAwMDAwMCBuIAowMDAwMTQ2MjIzIDAwMDAwIG4gCjAwMDAxNDYzNjcgMDAwMDAgbiAKMDAwMDI4MDk4OSAwMDAwMCBuIAowMDAwMTQ2NTE1IDAwMDAwIG4gCjAwMDAxNDY2NTkgMDAwMDAgbiAKMDAwMDI4MTA3MCAwMDAwMCBuIAowMDAwMTQ2ODAzIDAwMDAwIG4gCjAwMDAxNDY5NDcgMDAwMDAgbiAKMDAwMDI4MTE1MCAwMDAwMCBuIAowMDAwMTQ3MDk1IDAwMDAwIG4gCjAwMDAxNDcyMzkgMDAwMDAgbiAKMDAwMDI4MTIzMSAwMDAwMCBuIAowMDAwMTQ3Mzg3IDAwMDAwIG4gCjAwMDAxNDc1MzEgMDAwMDAgbiAKMDAwMDI4MTMxMiAwMDAwMCBuIAowMDAwMTQ3Njc5IDAwMDAwIG4gCjAwMDAxNDc4MjMgMDAwMDAgbiAKMDAwMDI4MTM5NSAwMDAwMCBuIAowMDAwMTQ3OTcxIDAwMDAwIG4gCjAwMDAxNDgxMTUgMDAwMDAgbiAKMDAwMDI4MTQ3NCAwMDAwMCBuIAowMDAwMTQ4MjU5IDAwMDAwIG4gCjAwMDAxNDg0MDMgMDAwMDAgbiAKMDAwMDI4MTU1NSAwMDAwMCBuIAowMDAwMTQ4NTQ3IDAwMDAwIG4gCjAwMDAxNDg2OTEgMDAwMDAgbiAKMDAwMDI4MTYzNiAwMDAwMCBuIAowMDAwMTQ4ODM5IDAwMDAwIG4gCjAwMDAxNDg5ODIgMDAwMDAgbiAKMDAwMDI4MTcxNyAwMDAwMCBuIAowMDAwMTQ5MTI5IDAwMDAwIG4gCjAwMDAxNDkyNzMgMDAwMDAgbiAKMDAwMDE0OTQxNSAwMDAwMCBuIAowMDAwMTc2OTY3IDAwMDAwIG4gCjAwMDAxNzg0MjcgMDAwMDAgbiAKMDAwMDE3Njk5MCAwMDAwMCBuIAowMDAwMTc4NTk3IDAwMDAwIG4gCjAwMDAxODA0MDMgMDAwMDAgbiAKMDAwMDE3ODYxOSAwMDAwMCBuIAowMDAwMTgwNTczIDAwMDAwIG4gCjAwMDAxODIwNDYgMDAwMDAgbiAKMDAwMDE4MDU5NSAwMDAwMCBuIAowMDAwMTgyMjE2IDAwMDAwIG4gCjAwMDAxODQyMTggMDAwMDAgbiAKMDAwMDE4MjIzOCAwMDAwMCBuIAowMDAwMTg0Mzg4IDAwMDAwIG4gCjAwMDAxODYyNzQgMDAwMDAgbiAKMDAwMDE4NDQxMCAwMDAwMCBuIAowMDAwMTg2NDQ0IDAwMDAwIG4gCjAwMDAxODc4OTcgMDAwMDAgbiAKMDAwMDE4NjQ2NiAwMDAwMCBuIAowMDAwMTg4MDY3IDAwMDAwIG4gCjAwMDAyODE3OTggMDAwMDAgbiAKMDAwMDE4ODA4OSAwMDAwMCBuIAowMDAwMjIwMjI4IDAwMDAwIG4gCjAwMDAxODgyMjkgMDAwMDAgbiAKMDAwMDI4MTg3OSAwMDAwMCBuIAowMDAwMTg4MzczIDAwMDAwIG4gCjAwMDAxODg1MTEgMDAwMDAgbiAKMDAwMDI4MTk2MCAwMDAwMCBuIAowMDAwMTg4NjUxIDAwMDAwIG4gCjAwMDAxODg3OTEgMDAwMDAgbiAKMDAwMDI4MjA0MyAwMDAwMCBuIAowMDAwMTg4OTMxIDAwMDAwIG4gCjAwMDAxODkwNzAgMDAwMDAgbiAKMDAwMDI4MjEyNiAwMDAwMCBuIAowMDAwMTg5MjE0IDAwMDAwIG4gCjAwMDAxODkzNTQgMDAwMDAgbiAKMDAwMDI4MjIwNiAwMDAwMCBuIAowMDAwMTg5NDk4IDAwMDAwIG4gCjAwMDAxODk2MzggMDAwMDAgbiAKMDAwMDI4MjI4OCAwMDAwMCBuIAowMDAwMTg5NzgyIDAwMDAwIG4gCjAwMDAxODk5MjIgMDAwMDAgbiAKMDAwMDI4MjM3MCAwMDAwMCBuIAowMDAwMTkwMDYyIDAwMDAwIG4gCjAwMDAxOTAyMDIgMDAwMDAgbiAKMDAwMDI4MjQ1MiAwMDAwMCBuIAowMDAwMTkwMzQyIDAwMDAwIG4gCjAwMDAxOTA0ODIgMDAwMDAgbiAKMDAwMDI4MjUzNiAwMDAwMCBuIAowMDAwMTkwNjI2IDAwMDAwIG4gCjAwMDAxOTA3NjYgMDAwMDAgbiAKMDAwMDI4MjYxOCAwMDAwMCBuIAowMDAwMTkwOTA2IDAwMDAwIG4gCjAwMDAxOTEwNDYgMDAwMDAgbiAKMDAwMDI4MjcwMCAwMDAwMCBuIAowMDAwMTkxMTg2IDAwMDAwIG4gCjAwMDAxOTEzMjYgMDAwMDAgbiAKMDAwMDI4Mjc4MiAwMDAwMCBuIAowMDAwMTkxNDcwIDAwMDAwIG4gCjAwMDAxOTE2MTAgMDAwMDAgbiAKMDAwMDI4Mjg2NiAwMDAwMCBuIAowMDAwMTkxNzU0IDAwMDAwIG4gCjAwMDAxOTE4OTQgMDAwMDAgbiAKMDAwMDI4Mjk1MSAwMDAwMCBuIAowMDAwMTkyMDM0IDAwMDAwIG4gCjAwMDAxOTIxNzQgMDAwMDAgbiAKMDAwMDI4MzAzMSAwMDAwMCBuIAowMDAwMTkyMzE4IDAwMDAwIG4gCjAwMDAxOTI0NTggMDAwMDAgbiAKMDAwMDI4MzExMiAwMDAwMCBuIAowMDAwMTkyNjAyIDAwMDAwIG4gCjAwMDAxOTI3NDIgMDAwMDAgbiAKMDAwMDI4MzE5MiAwMDAwMCBuIAowMDAwMTkyODgyIDAwMDAwIG4gCjAwMDAxOTMwMjIgMDAwMDAgbiAKMDAwMDI4MzI3MyAwMDAwMCBuIAowMDAwMTkzMTY2IDAwMDAwIG4gCjAwMDAxOTMzMDYgMDAwMDAgbiAKMDAwMDI4MzM1MyAwMDAwMCBuIAowMDAwMTkzNDUwIDAwMDAwIG4gCjAwMDAxOTM1OTAgMDAwMDAgbiAKMDAwMDI4MzQzNCAwMDAwMCBuIAowMDAwMTkzNzM0IDAwMDAwIG4gCjAwMDAxOTM4NzQgMDAwMDAgbiAKMDAwMDI4MzUxNCAwMDAwMCBuIAowMDAwMTk0MDE4IDAwMDAwIG4gCjAwMDAxOTQxNTggMDAwMDAgbiAKMDAwMDI4MzU5NSAwMDAwMCBuIAowMDAwMTk0MzAyIDAwMDAwIG4gCjAwMDAxOTQ0NDIgMDAwMDAgbiAKMDAwMDI4MzY3NSAwMDAwMCBuIAowMDAwMTk0NTg2IDAwMDAwIG4gCjAwMDAxOTQ3MjUgMDAwMDAgbiAKMDAwMDI4Mzc1NSAwMDAwMCBuIAowMDAwMTk0ODY3IDAwMDAwIG4gCjAwMDAxOTUwMDcgMDAwMDAgbiAKMDAwMDI4MzgzOSAwMDAwMCBuIAowMDAwMTk1MTQ5IDAwMDAwIG4gCjAwMDAxOTUyOTEgMDAwMDAgbiAKMDAwMDI4MzkyMSAwMDAwMCBuIAowMDAwMTk1NDMzIDAwMDAwIG4gCjAwMDAxOTU1NzMgMDAwMDAgbiAKMDAwMDI4NDAwMyAwMDAwMCBuIAowMDAwMTk1NzE1IDAwMDAwIG4gCjAwMDAxOTU4NTUgMDAwMDAgbiAKMDAwMDI4NDA4NSAwMDAwMCBuIAowMDAwMTk1OTk3IDAwMDAwIG4gCjAwMDAxOTYxMzcgMDAwMDAgbiAKMDAwMDI4NDE2NiAwMDAwMCBuIAowMDAwMTk2Mjc5IDAwMDAwIG4gCjAwMDAxOTY0MTkgMDAwMDAgbiAKMDAwMDI4NDI0OCAwMDAwMCBuIAowMDAwMTk2NTYxIDAwMDAwIG4gCjAwMDAxOTY3MDEgMDAwMDAgbiAKMDAwMDI4NDMzMiAwMDAwMCBuIAowMDAwMTk2ODQzIDAwMDAwIG4gCjAwMDAxOTY5ODMgMDAwMDAgbiAKMDAwMDI4NDQxNiAwMDAwMCBuIAowMDAwMTk3MTI1IDAwMDAwIG4gCjAwMDAxOTcyNjUgMDAwMDAgbiAKMDAwMDI4NDUwMSAwMDAwMCBuIAowMDAwMTk3NDA3IDAwMDAwIG4gCjAwMDAxOTc1NDcgMDAwMDAgbiAKMDAwMDI4NDU4MSAwMDAwMCBuIAowMDAwMTk3Njg5IDAwMDAwIG4gCjAwMDAxOTc4MjggMDAwMDAgbiAKMDAwMDI4NDY2MyAwMDAwMCBuIAowMDAwMTk3OTcwIDAwMDAwIG4gCjAwMDAxOTgxMTAgMDAwMDAgbiAKMDAwMDI4NDc0NSAwMDAwMCBuIAowMDAwMTk4MjUyIDAwMDAwIG4gCjAwMDAxOTgzOTIgMDAwMDAgbiAKMDAwMDI4NDgyNyAwMDAwMCBuIAowMDAwMTk4NTM0IDAwMDAwIG4gCjAwMDAxOTg2NzQgMDAwMDAgbiAKMDAwMDI4NDkwOSAwMDAwMCBuIAowMDAwMTk4ODE2IDAwMDAwIG4gCjAwMDAxOTg5NTcgMDAwMDAgbiAKMDAwMDI4NDk5MSAwMDAwMCBuIAowMDAwMTk5MTAxIDAwMDAwIG4gCjAwMDAxOTkyNDMgMDAwMDAgbiAKMDAwMDI4NTA3NSAwMDAwMCBuIAowMDAwMTk5Mzg3IDAwMDAwIG4gCjAwMDAxOTk1MjkgMDAwMDAgbiAKMDAwMDI4NTE1OSAwMDAwMCBuIAowMDAwMTk5NjczIDAwMDAwIG4gCjAwMDAxOTk4MTUgMDAwMDAgbiAKMDAwMDI4NTIzOSAwMDAwMCBuIAowMDAwMTk5OTU5IDAwMDAwIG4gCjAwMDAyMDAxMDEgMDAwMDAgbiAKMDAwMDI4NTMyMCAwMDAwMCBuIAowMDAwMjAwMjQ1IDAwMDAwIG4gCjAwMDAyMDAzODcgMDAwMDAgbiAKMDAwMDI4NTQwMiAwMDAwMCBuIAowMDAwMjAwNTMxIDAwMDAwIG4gCjAwMDAyMDA2NzMgMDAwMDAgbiAKMDAwMDI4NTQ4NCAwMDAwMCBuIAowMDAwMjAwODE3IDAwMDAwIG4gCjAwMDAyMDA5NTkgMDAwMDAgbiAKMDAwMDI4NTU2NiAwMDAwMCBuIAowMDAwMjAxMTAzIDAwMDAwIG4gCjAwMDAyMDEyNDUgMDAwMDAgbiAKMDAwMDI4NTY0OCAwMDAwMCBuIAowMDAwMjAxMzg5IDAwMDAwIG4gCjAwMDAyMDE1MjkgMDAwMDAgbiAKMDAwMDI4NTczMCAwMDAwMCBuIAowMDAwMjAxNjczIDAwMDAwIG4gCjAwMDAyMDE4MTUgMDAwMDAgbiAKMDAwMDI4NTgxNCAwMDAwMCBuIAowMDAwMjAxOTU5IDAwMDAwIG4gCjAwMDAyMDIwOTkgMDAwMDAgbiAKMDAwMDI4NTg5OCAwMDAwMCBuIAowMDAwMjAyMjQxIDAwMDAwIG4gCjAwMDAyMDIzODQgMDAwMDAgbiAKMDAwMDI4NTk3OCAwMDAwMCBuIAowMDAwMjAyNTI5IDAwMDAwIG4gCjAwMDAyMDI2NzEgMDAwMDAgbiAKMDAwMDI4NjA2MCAwMDAwMCBuIAowMDAwMjAyODE1IDAwMDAwIG4gCjAwMDAyMDI5NTYgMDAwMDAgbiAKMDAwMDI4NjE0MiAwMDAwMCBuIAowMDAwMjAzMDk5IDAwMDAwIG4gCjAwMDAyMDMyNDAgMDAwMDAgbiAKMDAwMDIwMzM4MyAwMDAwMCBuIAowMDAwMjIxMzAwIDAwMDAwIG4gCjAwMDAyMjIzODUgMDAwMDAgbiAKMDAwMDIyMTMyMyAwMDAwMCBuIAowMDAwMjIyNTU1IDAwMDAwIG4gCjAwMDAyMjM2ODEgMDAwMDAgbiAKMDAwMDIyMjU3NiAwMDAwMCBuIAowMDAwMjIzODUxIDAwMDAwIG4gCjAwMDAyMjUzNzcgMDAwMDAgbiAKMDAwMDIyMzg3MyAwMDAwMCBuIAowMDAwMjI1NTQ3IDAwMDAwIG4gCjAwMDAyMjYxMjUgMDAwMDAgbiAKMDAwMDIyNTU2OSAwMDAwMCBuIAowMDAwMjI2Mjk1IDAwMDAwIG4gCjAwMDAyMjcyNTEgMDAwMDAgbiAKMDAwMDIyNjMxNiAwMDAwMCBuIAowMDAwMjI3MjIyIDAwMDAwIG4gCjAwMDAyMjY1MjAgMDAwMDAgbiAKMDAwMDIyNzQzOSAwMDAwMCBuIAowMDAwMjg2MjI0IDAwMDAwIG4gCjAwMDAyMjc0NjAgMDAwMDAgbiAKMDAwMDI0MzE5MyAwMDAwMCBuIAowMDAwMjI3NjAwIDAwMDAwIG4gCjAwMDAyODYzMDYgMDAwMDAgbiAKMDAwMDIyNzc0MiAwMDAwMCBuIAowMDAwMjI3ODgyIDAwMDAwIG4gCjAwMDAyODYzODggMDAwMDAgbiAKMDAwMDIyODAyNCAwMDAwMCBuIAowMDAwMjI4MTY0IDAwMDAwIG4gCjAwMDAyODY0NzAgMDAwMDAgbiAKMDAwMDIyODMwNiAwMDAwMCBuIAowMDAwMjI4NDQ2IDAwMDAwIG4gCjAwMDAyODY1NTQgMDAwMDAgbiAKMDAwMDIyODU4OCAwMDAwMCBuIAowMDAwMjI4NzMwIDAwMDAwIG4gCjAwMDAyODY2MzggMDAwMDAgbiAKMDAwMDIyODg3MiAwMDAwMCBuIAowMDAwMjI5MDE0IDAwMDAwIG4gCjAwMDAyODY3MjMgMDAwMDAgbiAKMDAwMDIyOTE1NiAwMDAwMCBuIAowMDAwMjI5Mjk2IDAwMDAwIG4gCjAwMDAyODY4MDMgMDAwMDAgbiAKMDAwMDIyOTQzOCAwMDAwMCBuIAowMDAwMjI5NTc4IDAwMDAwIG4gCjAwMDAyODY4ODMgMDAwMDAgbiAKMDAwMDIyOTcyMCAwMDAwMCBuIAowMDAwMjI5ODYwIDAwMDAwIG4gCjAwMDAyODY5NjMgMDAwMDAgbiAKMDAwMDIzMDAwMiAwMDAwMCBuIAowMDAwMjMwMTQyIDAwMDAwIG4gCjAwMDAyODcwNDMgMDAwMDAgbiAKMDAwMDIzMDI4NCAwMDAwMCBuIAowMDAwMjMwNDI0IDAwMDAwIG4gCjAwMDAyODcxMjMgMDAwMDAgbiAKMDAwMDIzMDU2NiAwMDAwMCBuIAowMDAwMjMwNzA2IDAwMDAwIG4gCjAwMDAyODcyMDMgMDAwMDAgbiAKMDAwMDIzMDg0OCAwMDAwMCBuIAowMDAwMjMwOTg4IDAwMDAwIG4gCjAwMDAyODcyODMgMDAwMDAgbiAKMDAwMDIzMTEzMCAwMDAwMCBuIAowMDAwMjMxMjcwIDAwMDAwIG4gCjAwMDAyODczNjMgMDAwMDAgbiAKMDAwMDIzMTQxMiAwMDAwMCBuIAowMDAwMjMxNTUxIDAwMDAwIG4gCjAwMDAyODc0NDcgMDAwMDAgbiAKMDAwMDIzMTY5MyAwMDAwMCBuIAowMDAwMjMxODMyIDAwMDAwIG4gCjAwMDAyODc1MjcgMDAwMDAgbiAKMDAwMDIzMTk3NSAwMDAwMCBuIAowMDAwMjMyMTE0IDAwMDAwIG4gCjAwMDAyODc2MDcgMDAwMDAgbiAKMDAwMDIzMjI1NiAwMDAwMCBuIAowMDAwMjMyMzk1IDAwMDAwIG4gCjAwMDAyODc2ODcgMDAwMDAgbiAKMDAwMDIzMjUzOSAwMDAwMCBuIAowMDAwMjMyNjc4IDAwMDAwIG4gCjAwMDAyODc3NjcgMDAwMDAgbiAKMDAwMDIzMjgyMiAwMDAwMCBuIAowMDAwMjMyOTYxIDAwMDAwIG4gCjAwMDAyODc4NDcgMDAwMDAgbiAKMDAwMDIzMzEwMyAwMDAwMCBuIAowMDAwMjMzMjQzIDAwMDAwIG4gCjAwMDAyMzMzODUgMDAwMDAgbiAKMDAwMDI0MzczNyAwMDAwMCBuIAowMDAwMjQzNzU5IDAwMDAwIG4gCjAwMDAyNDQwMjIgMDAwMDAgbiAKMDAwMDI0OTU1MSAwMDAwMCBuIAowMDAwMjQ5NjQ5IDAwMDAwIG4gCjAwMDAyNDk4MTQgMDAwMDAgbiAKMDAwMDI1MDE4NCAwMDAwMCBuIAowMDAwMjUwNjUwIDAwMDAwIG4gCjAwMDAyNTA5MTEgMDAwMDAgbiAKMDAwMDI2Mjk0NSAwMDAwMCBuIAowMDAwMjYzMDUwIDAwMDAwIG4gCjAwMDAyNjMyMTEgMDAwMDAgbiAKMDAwMDI2Mzc1OCAwMDAwMCBuIAowMDAwMjY0NDA3IDAwMDAwIG4gCjAwMDAyNjQ2NzMgMDAwMDAgbiAKMDAwMDI3NTA4OSAwMDAwMCBuIAowMDAwMjc1MTg5IDAwMDAwIG4gCjAwMDAyNzUzNTUgMDAwMDAgbiAKMDAwMDI3NTg1NiAwMDAwMCBuIAowMDAwMjc2NDUzIDAwMDAwIG4gCjAwMDAyNzY0NzUgMDAwMDAgbiAKMDAwMDI3NjQ5NSAwMDAwMCBuIAowMDAwMjc2NTE2IDAwMDAwIG4gCjAwMDAyNzY1MzkgMDAwMDAgbiAKMDAwMDI3NjU1OSAwMDAwMCBuIAowMDAwMjc2NTgwIDAwMDAwIG4gCjAwMDAyNzY2MDMgMDAwMDAgbiAKMDAwMDI3NjYyMyAwMDAwMCBuIAp0cmFpbGVyCjw8Ci9TaXplIDUwOQovUm9vdCAyIDAgUgovSW5mbyA0IDAgUgovSUQgWzxEMzk2QjI3MDJBOEJCMEEyMEI5OUMyREI5OENCQzM2ND4gPEQzOTZCMjcwMkE4QkIwQTIwQjk5QzJEQjk4Q0JDMzY0Pl0KPj4Kc3RhcnR4cmVmCjI4NzkyNwolJUVPRgo=