iPhoneHandle
4.0.6
OTRS AG
https://otrs.com/
GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007
- Code cleanup.
- Code cleanup.
- Code Cleanup.
- Code cleanup.
Build for iPhoneHandle 4 patch level 2.
Build for iPhoneHandle 4
Build for iPhoneHandle 4 rc1.
Build for iPhoneHandle 4 beta1.
The iPhoneHandle Package.
Das iPhoneHandle Paket.
4.0.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/>
# create the package name
my $CodeModule = 'var::packagesetup::' . $Param{Structure}->{Name}->{Content};
$Kernel::OM->Get($CodeModule)->CodeInstall();
# create the package name
my $CodeModule = 'var::packagesetup::' . $Param{Structure}->{Name}->{Content};
$Kernel::OM->Get($CodeModule)->CodeUpgrade();
# create the package name
my $CodeModule = 'var::packagesetup::' . $Param{Structure}->{Name}->{Content};
$Kernel::OM->Get($CodeModule)->CodeUninstall();
# create the package name
my $CodeModule = 'var::packagesetup::' . $Param{Structure}->{Name}->{Content};
$Kernel::OM->Get($CodeModule)->CodeReinstall();
2018-09-14 17:26:58
opms.otrs.com
IyEvdXNyL2Jpbi9wZXJsCiMgLS0KIyBDb3B5cmlnaHQgKEMpIDIwMDEtMjAxOCBPVFJTIEFHLCBodHRwczovL290cnMuY29tLwojIC0tCiMgVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU6IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKIyBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQojIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2UsIG9yCiMgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KIwojIFRoaXMgcHJvZ3JhbSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAojIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCiMgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiBTZWUgdGhlCiMgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KIwojIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCiMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uIElmIG5vdCwgc2VlIGh0dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvZ3BsLTMuMC50eHQuCiMgLS0KCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCiMgdXNlIC4uLy4uLyBhcyBsaWIgbG9jYXRpb24KdXNlIEZpbmRCaW4gcXcoJEJpbik7CnVzZSBsaWIgIiRCaW4vLi4vLi4iOwp1c2UgbGliICIkQmluLy4uLy4uL0tlcm5lbC9jcGFuLWxpYiI7CgojIGxvYWQgaVBob25lIEhhbmRsZSB3ZWIgaW50ZXJmYWNlCnVzZSBLZXJuZWw6OlN5c3RlbTo6V2ViOjpJbnRlcmZhY2VpUGhvbmVIYW5kbGUoKTsKdXNlIEtlcm5lbDo6U3lzdGVtOjpPYmplY3RNYW5hZ2VyOwoKbG9jYWwgJEtlcm5lbDo6T00gPSBLZXJuZWw6OlN5c3RlbTo6T2JqZWN0TWFuYWdlci0+bmV3KCk7CgojIGNyZWF0ZSBuZXcgb2JqZWN0Cm15ICRJbnRlcmZhY2UgPSBLZXJuZWw6OlN5c3RlbTo6V2ViOjpJbnRlcmZhY2VpUGhvbmVIYW5kbGUtPm5ldygpOwoKIyBleGVjdXRlIG9iamVjdApteSAkUmVzcG9uc2UgPSAkSW50ZXJmYWNlLT5SdW4oKTsKCnByaW50ICJDb250ZW50LVR5cGU6IHRleHQvcGxhaW47IFxuIjsKcHJpbnQgIlxuIjsKcHJpbnQgJFJlc3BvbnNlOwoKMTsK
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+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJpUGhvbmU6OkZyb250ZW5kOjpBZ2VudFRpY2tldFBob25lIyMjQm9keSIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5TZXRzIHRoZSBkZWZhdWx0IGJvZHkgdGV4dCBmb3Igbm90ZXMgYWRkZWQgaW4gdGhlIG5ldyBwaG9uZSB0aWNrZXQgc2NyZWVuIG9mIHRoZSBpUGhvbmUgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPmlQaG9uZUhhbmRsZTwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkZyb250ZW5kOjpBZ2VudDo6VGlja2V0OjpWaWV3UGhvbmU8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8VGV4dEFyZWE+PC9UZXh0QXJlYT4KICAgICAgICA8L1NldHRpbmc+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+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iaVBob25lOjpGcm9udGVuZDo6QWdlbnRUaWNrZXRNb3ZlIyMjU3ViamVjdCIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5TZXRzIHRoZSBkZWZhdWx0IHN1YmplY3QgZm9yIG5vdGVzIGFkZGVkIGluIHRoZSBtb3ZlIHRpY2tldCBzY3JlZW4gb2YgdGhlIGlQaG9uZSBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+aVBob25lSGFuZGxlPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+RnJvbnRlbmQ6OkFnZW50OjpUaWNrZXQ6OlZpZXdNb3ZlPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPFN0cmluZyBSZWdleD0iIj5DaGFuZ2UgUXVldWU8L1N0cmluZz4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJpUGhvbmU6OkZyb250ZW5kOjpBZ2VudFRpY2tldE1vdmUjIyNPd25lciIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5TZXRzIHRoZSB0aWNrZXQgb3duZXIgaW4gdGhlIG1vdmUgdGlja2V0IHNjcmVlbiBvZiB0aGUgaVBob25lIGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5pUGhvbmVIYW5kbGU8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Gcm9udGVuZDo6QWdlbnQ6OlRpY2tldDo6Vmlld01vdmU8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8T3B0aW9uIFNlbGVjdGVkSUQ9IjEiPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIwIj5ObzwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMSI+WWVzPC9JdGVtPgogICAgICAgICAgICA8L09wdGlvbj4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJpUGhvbmU6OkZyb250ZW5kOjpBZ2VudFRpY2tldE1vdmUjIyNTdGF0ZSIgUmVxdWlyZWQ9IjAiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5BbGxvd3MgdG8gc2V0IGEgbmV3IHRpY2tldCBzdGF0ZSBpbiB0aGUgbW92ZSB0aWNrZXQgc2NyZWVuIG9mIHRoZSBpUGhvbmUgaW50ZXJmYWNlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPmlQaG9uZUhhbmRsZTwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkZyb250ZW5kOjpBZ2VudDo6VGlja2V0OjpWaWV3TW92ZTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxPcHRpb24gU2VsZWN0ZWRJRD0iMSI+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjAiPk5vPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIxIj5ZZXM8L0l0ZW0+CiAgICAgICAgICAgIDwvT3B0aW9uPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9ImlQaG9uZTo6RnJvbnRlbmQ6OkFnZW50VGlja2V0TW92ZSMjI1N0YXRlVHlwZSIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EZWZpbmVzIHRoZSBuZXh0IHN0YXRlIG9mIGEgdGlja2V0IGFmdGVyIGJlaW5nIG1vdmVkIHRvIGFub3RoZXIgcXVldWUsIGluIHRoZSBtb3ZlIHRpY2tldCBzY3JlZW4gb2YgdGhlIGlQaG9uZSBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+aVBob25lSGFuZGxlPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+RnJvbnRlbmQ6OkFnZW50OjpUaWNrZXQ6OlZpZXdNb3ZlPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPEFycmF5PgogICAgICAgICAgICAgICAgPEl0ZW0+b3BlbjwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtPmNsb3NlZDwvSXRlbT4KICAgICAgICAgICAgPC9BcnJheT4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJpUGhvbmU6OkZyb250ZW5kOjpBZ2VudFRpY2tldE1vdmUjIyNTdGF0ZURlZmF1bHQiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RGVmaW5lcyB0aGUgZGVmYXVsdCBuZXh0IHN0YXRlIG9mIGEgdGlja2V0IGFmdGVyIGFkZGluZyBhIG5vdGUsIGluIHRoZSBtb3ZlIHRpY2tldCBzY3JlZW4gb2YgdGhlIGlQaG9uZSBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+aVBob25lSGFuZGxlPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+RnJvbnRlbmQ6OkFnZW50OjpUaWNrZXQ6OlZpZXdNb3ZlPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPFN0cmluZyBSZWdleD0iIj5vcGVuPC9TdHJpbmc+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iaVBob25lOjpGcm9udGVuZDo6QWdlbnRUaWNrZXRNb3ZlIyMjUHJpb3JpdHkiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMCI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+U2hvd3MgdGhlIHRpY2tldCBwcmlvcml0eSBvcHRpb25zIGluIHRoZSBtb3ZlIHRpY2tldCBzY3JlZW4gb2YgdGhlIGlQaG9uZSBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+aVBob25lSGFuZGxlPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+RnJvbnRlbmQ6OkFnZW50OjpUaWNrZXQ6OlZpZXdNb3ZlPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPE9wdGlvbiBTZWxlY3RlZElEPSIwIj4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMCI+Tm88L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IjEiPlllczwvSXRlbT4KICAgICAgICAgICAgPC9PcHRpb24+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iaVBob25lOjpGcm9udGVuZDo6QWdlbnRUaWNrZXRNb3ZlIyMjUHJpb3JpdHlEZWZhdWx0IiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjAiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkRlZmluZXMgdGhlIGRlZmF1bHQgdGlja2V0IHByaW9yaXR5IGluIHRoZSBtb3ZlIHRpY2tldCBzY3JlZW4gb2YgdGhlIGlQaG9uZSBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+aVBob25lSGFuZGxlPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+RnJvbnRlbmQ6OkFnZW50OjpUaWNrZXQ6OlZpZXdNb3ZlPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPFN0cmluZyBSZWdleD0iIj4zIG5vcm1hbDwvU3RyaW5nPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9ImlQaG9uZTo6RnJvbnRlbmQ6OkFnZW50VGlja2V0TW92ZSMjI0JvZHkiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+U2V0cyB0aGUgZGVmYXVsdCBib2R5IHRleHQgZm9yIG5vdGVzIGFkZGVkIGluIHRoZSBtb3ZlIHRpY2tldCBzY3JlZW4gb2YgdGhlIGlQaG9uZSBpbnRlcmZhY2UuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+aVBob25lSGFuZGxlPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+RnJvbnRlbmQ6OkFnZW50OjpUaWNrZXQ6OlZpZXdNb3ZlPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPFRleHRBcmVhPjwvVGV4dEFyZWE+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iaVBob25lOjpGcm9udGVuZDo6QWdlbnRUaWNrZXRNb3ZlIyMjVGltZVVuaXRzIiBSZXF1aXJlZD0iMCIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPlNldHMgdGhlIHRpbWUgdW5pdHMgaW4gdGhlIG1vdmUgdGlja2V0IHNjcmVlbiBvZiB0aGUgaVBob25lIGludGVyZmFjZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5pUGhvbmVIYW5kbGU8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Gcm9udGVuZDo6QWdlbnQ6OlRpY2tldDo6Vmlld01vdmU8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8T3B0aW9uIFNlbGVjdGVkSUQ9IjEiPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSIwIj5ObzwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iMSI+WWVzPC9JdGVtPgogICAgICAgICAgICA8L09wdGlvbj4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJpUGhvbmU6OkZyb250ZW5kOjpBZ2VudFRpY2tldE1vdmUjIyNEeW5hbWljRmllbGQiIFJlcXVpcmVkPSIwIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RHluYW1pYyBmaWVsZHMgc2hvd24gaW4gdGhlIHRpY2tldCBtb3ZlIHNjcmVlbiBvZiB0aGUgaVBob25lIGludGVyZmFjZS4gUG9zc2libGUgc2V0dGluZ3M6IDAgPSBEaXNhYmxlZCwgMSA9IEVuYWJsZWQsIDIgPSBFbmFibGVkIGFuZCByZXF1aXJlZC48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5pUGhvbmVIYW5kbGU8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5Gcm9udGVuZDo6QWdlbnQ6OlRpY2tldDo6Vmlld01vdmU8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KCiAgICA8Q29uZmlnSXRlbSBOYW1lPSJpUGhvbmU6OkFQSTo6T2JqZWN0IyMjVGlja2V0T2JqZWN0IiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkNvbmZpZ3VyZSBhY2Nlc3MgcmVzdHJpY3Rpb25zIHRvIG9iamVjdHMgb2YgaVBob25lIGhhbmRsZS48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5pUGhvbmVIYW5kbGU8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5BUEk8L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8U3RyaW5nIFJlZ2V4PSIiPihNb3ZlTGlzdHxNb3ZlVGlja2V0KTwvU3RyaW5nPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9ImlQaG9uZTo6QVBJOjpPYmplY3QjIyNDdXN0b21PYmplY3QiIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+Q29uZmlndXJlIGFjY2VzcyByZXN0cmljdGlvbnMgdG8gb2JqZWN0cyBvZiBpUGhvbmUgaGFuZGxlLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPmlQaG9uZUhhbmRsZTwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkFQSTwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxTdHJpbmcgUmVnZXg9IiI+PC9TdHJpbmc+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iaVBob25lOjpBUEk6Ok9iamVjdCMjI2lQaG9uZU9iamVjdCIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5Db25maWd1cmUgYWNjZXNzIHJlc3RyaWN0aW9ucyB0byBvYmplY3RzIG9mIGlQaG9uZSBoYW5kbGUuPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+aVBob25lSGFuZGxlPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+QVBJPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPFN0cmluZyBSZWdleD0iIj48L1N0cmluZz4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iRHluYW1pY0ZpZWxkczo6RXh0ZW5zaW9uOjpCYWNrZW5kIyMjMTAwLWlQaG9uZSIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EeW5hbWljIEZpZWxkcyBFeHRlbnNpb24uPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+aVBob25lSGFuZGxlPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+RHluYW1pY0ZpZWxkczo6RXh0ZW5zaW9uOjpSZWdpc3RyYXRpb248L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTW9kdWxlIj5LZXJuZWw6OlN5c3RlbTo6RHluYW1pY0ZpZWxkOjppUGhvbmVCYWNrZW5kPC9JdGVtPgogICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iRHluYW1pY0ZpZWxkczo6RXh0ZW5zaW9uOjpEcml2ZXI6OlRleHQjIyMxMDAtaVBob25lIiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkR5bmFtaWMgRmllbGRzIEV4dGVuc2lvbi48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5pUGhvbmVIYW5kbGU8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5EeW5hbWljRmllbGRzOjpFeHRlbnNpb246OlJlZ2lzdHJhdGlvbjwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJNb2R1bGUiPktlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQ6OkRyaXZlcjo6aVBob25lVGV4dDwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQmVoYXZpb3JzIj4KICAgICAgICAgICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJJc0lQaG9uZUNhcGFibGUiPjE8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPC9IYXNoPgogICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iRHluYW1pY0ZpZWxkczo6RXh0ZW5zaW9uOjpEcml2ZXI6OlRleHRBcmVhIyMjMTAwLWlQaG9uZSIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EeW5hbWljIEZpZWxkcyBFeHRlbnNpb24uPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+aVBob25lSGFuZGxlPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+RHluYW1pY0ZpZWxkczo6RXh0ZW5zaW9uOjpSZWdpc3RyYXRpb248L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTW9kdWxlIj5LZXJuZWw6OlN5c3RlbTo6RHluYW1pY0ZpZWxkOjpEcml2ZXI6OmlQaG9uZVRleHRBcmVhPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJCZWhhdmlvcnMiPgogICAgICAgICAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IklzSVBob25lQ2FwYWJsZSI+MTwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJEeW5hbWljRmllbGRzOjpFeHRlbnNpb246OkRyaXZlcjo6Q2hlY2tib3gjIyMxMDAtaVBob25lIiBSZXF1aXJlZD0iMSIgVmFsaWQ9IjEiPgogICAgICAgIDxEZXNjcmlwdGlvbiBUcmFuc2xhdGFibGU9IjEiPkR5bmFtaWMgRmllbGRzIEV4dGVuc2lvbi48L0Rlc2NyaXB0aW9uPgogICAgICAgIDxHcm91cD5pUGhvbmVIYW5kbGU8L0dyb3VwPgogICAgICAgIDxTdWJHcm91cD5EeW5hbWljRmllbGRzOjpFeHRlbnNpb246OlJlZ2lzdHJhdGlvbjwvU3ViR3JvdXA+CiAgICAgICAgPFNldHRpbmc+CiAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJNb2R1bGUiPktlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQ6OkRyaXZlcjo6aVBob25lQ2hlY2tib3g8L0l0ZW0+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IkJlaGF2aW9ycyI+CiAgICAgICAgICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iSXNJUGhvbmVDYXBhYmxlIj4xPC9JdGVtPgogICAgICAgICAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICAgICAgICAgIDwvSXRlbT4KICAgICAgICAgICAgPC9IYXNoPgogICAgICAgIDwvU2V0dGluZz4KICAgIDwvQ29uZmlnSXRlbT4KICAgIDxDb25maWdJdGVtIE5hbWU9IkR5bmFtaWNGaWVsZHM6OkV4dGVuc2lvbjo6RHJpdmVyOjpEcm9wZG93biMjIzEwMC1pUGhvbmUiIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RHluYW1pYyBGaWVsZHMgRXh0ZW5zaW9uLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPmlQaG9uZUhhbmRsZTwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkR5bmFtaWNGaWVsZHM6OkV4dGVuc2lvbjo6UmVnaXN0cmF0aW9uPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ik1vZHVsZSI+S2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZDo6RHJpdmVyOjppUGhvbmVEcm9wZG93bjwvSXRlbT4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iQmVoYXZpb3JzIj4KICAgICAgICAgICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJJc0lQaG9uZUNhcGFibGUiPjE8L0l0ZW0+CiAgICAgICAgICAgICAgICAgICAgPC9IYXNoPgogICAgICAgICAgICAgICAgPC9JdGVtPgogICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgPC9TZXR0aW5nPgogICAgPC9Db25maWdJdGVtPgogICAgPCEtLSAgTXVsdGlzZWxlY3QgRHluYW1pYyBGaWVsZCBpcyBjdXJyZW50bHkgbm90IHN1cHBvcnRlZCBieSBpUGhvbmUgQXBwIC0tPgogICAgPENvbmZpZ0l0ZW0gTmFtZT0iRHluYW1pY0ZpZWxkczo6RXh0ZW5zaW9uOjpEcml2ZXI6OkRhdGVUaW1lIyMjMTAwLWlQaG9uZSIgUmVxdWlyZWQ9IjEiIFZhbGlkPSIxIj4KICAgICAgICA8RGVzY3JpcHRpb24gVHJhbnNsYXRhYmxlPSIxIj5EeW5hbWljIEZpZWxkcyBFeHRlbnNpb24uPC9EZXNjcmlwdGlvbj4KICAgICAgICA8R3JvdXA+aVBob25lSGFuZGxlPC9Hcm91cD4KICAgICAgICA8U3ViR3JvdXA+RHluYW1pY0ZpZWxkczo6RXh0ZW5zaW9uOjpSZWdpc3RyYXRpb248L1N1Ykdyb3VwPgogICAgICAgIDxTZXR0aW5nPgogICAgICAgICAgICA8SGFzaD4KICAgICAgICAgICAgICAgIDxJdGVtIEtleT0iTW9kdWxlIj5LZXJuZWw6OlN5c3RlbTo6RHluYW1pY0ZpZWxkOjpEcml2ZXI6OmlQaG9uZURhdGVUaW1lPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJCZWhhdmlvcnMiPgogICAgICAgICAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IklzSVBob25lQ2FwYWJsZSI+MTwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+CiAgICA8Q29uZmlnSXRlbSBOYW1lPSJEeW5hbWljRmllbGRzOjpFeHRlbnNpb246OkRyaXZlcjo6RGF0ZSMjIzEwMC1pUGhvbmUiIFJlcXVpcmVkPSIxIiBWYWxpZD0iMSI+CiAgICAgICAgPERlc2NyaXB0aW9uIFRyYW5zbGF0YWJsZT0iMSI+RHluYW1pYyBGaWVsZHMgRXh0ZW5zaW9uLjwvRGVzY3JpcHRpb24+CiAgICAgICAgPEdyb3VwPmlQaG9uZUhhbmRsZTwvR3JvdXA+CiAgICAgICAgPFN1Ykdyb3VwPkR5bmFtaWNGaWVsZHM6OkV4dGVuc2lvbjo6UmVnaXN0cmF0aW9uPC9TdWJHcm91cD4KICAgICAgICA8U2V0dGluZz4KICAgICAgICAgICAgPEhhc2g+CiAgICAgICAgICAgICAgICA8SXRlbSBLZXk9Ik1vZHVsZSI+S2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZDo6RHJpdmVyOjppUGhvbmVEYXRlPC9JdGVtPgogICAgICAgICAgICAgICAgPEl0ZW0gS2V5PSJCZWhhdmlvcnMiPgogICAgICAgICAgICAgICAgICAgIDxIYXNoPgogICAgICAgICAgICAgICAgICAgICAgICA8SXRlbSBLZXk9IklzSVBob25lQ2FwYWJsZSI+MTwvSXRlbT4KICAgICAgICAgICAgICAgICAgICA8L0hhc2g+CiAgICAgICAgICAgICAgICA8L0l0ZW0+CiAgICAgICAgICAgIDwvSGFzaD4KICAgICAgICA8L1NldHRpbmc+CiAgICA8L0NvbmZpZ0l0ZW0+Cjwvb3Ryc19jb25maWc+Cg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE4IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6U3lzdGVtOjppUGhvbmVIYW5kbGU7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7Cgp1c2UgS2VybmVsOjpTeXN0ZW06OlZhcmlhYmxlQ2hlY2sgcXcoOmFsbCk7Cgp1c2UgYmFzZSBxdygKICAgIEtlcm5lbDo6U3lzdGVtOjppUGhvbmVIYW5kbGU6OlNjcmVlbkNvbmZpZwogICAgS2VybmVsOjpTeXN0ZW06OmlQaG9uZUhhbmRsZTo6U2NyZWVuQWN0aW9uCiAgICBLZXJuZWw6OlN5c3RlbTo6aVBob25lSGFuZGxlOjpPdmVydmlldwopOwoKb3VyIEBPYmplY3REZXBlbmRlbmNpZXMgPSAoCiAgICAnS2VybmVsOjpDb25maWcnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpDaGVja0l0ZW0nLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpDdXN0b21lclVzZXInLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpEQicsCiAgICAnS2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZCcsCiAgICAnS2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZDo6QmFja2VuZCcsCiAgICAnS2VybmVsOjpTeXN0ZW06Okdyb3VwJywKICAgICdLZXJuZWw6OlN5c3RlbTo6TG9jaycsCiAgICAnS2VybmVsOjpTeXN0ZW06OkxvZycsCiAgICAnS2VybmVsOjpTeXN0ZW06Ok1haW4nLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpQcmlvcml0eScsCiAgICAnS2VybmVsOjpTeXN0ZW06OlF1ZXVlJywKICAgICdLZXJuZWw6OlN5c3RlbTo6U3RhdGUnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpTeXN0ZW1BZGRyZXNzJywKICAgICdLZXJuZWw6OlN5c3RlbTo6VGVtcGxhdGVHZW5lcmF0b3InLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpUaWNrZXQnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpUaW1lJywKICAgICdLZXJuZWw6OlN5c3RlbTo6VXNlcicsCik7Cgo9aGVhZDEgTkFNRQoKS2VybmVsOjpTeXN0ZW06OmlQaG9uZSAtIGlQaG9uZSBsaWIKCj1oZWFkMSBTWU5PUFNJUwoKQWxsIGlQaG9uZSBmdW5jdGlvbnMuCgo9aGVhZDEgUFVCTElDIElOVEVSRkFDRQoKPW92ZXIgNAoKPWN1dAoKPWl0ZW0gbmV3KCkKCmNyZWF0ZSBhbiBvYmplY3QKCiAgICB1c2UgS2VybmVsOjpTeXN0ZW06Ok9iamVjdE1hbmFnZXI7CiAgICBsb2NhbCAkS2VybmVsOjpPTSA9IEtlcm5lbDo6U3lzdGVtOjpPYmplY3RNYW5hZ2VyLT5uZXcoKTsKICAgIG15ICRWYWxpZE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjppUGhvbmUnKTsKCj1jdXQKCnN1YiBuZXcgewogICAgbXkgKCAkVHlwZSwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGFsbG9jYXRlIG5ldyBoYXNoIGZvciBvYmplY3QKICAgIG15ICRTZWxmID0geyVQYXJhbX07CiAgICBibGVzcyggJFNlbGYsICRUeXBlICk7CgogICAgcmV0dXJuICRTZWxmOwp9Cgo9aXRlbSBCYWRnZXMoKQoKR2V0IEJhZGdlcyB0aWNrZXQgY291bnRzIGZvciBXYXRjaGVkLCBMb2NrZWQgYW5kIFJlc3BvbnNpYmxlIGZvciB0aWNrZXRzCgogICAgbXkgQFJlc3VsdCA9ICRpUGhvbmVPYmplY3QtPkJhZGdlcygKICAgICAgICBVc2VySUQgICAgICAgICAgPT4gMSwKICAgICk7CgogICAgIyBhIHJlc3VsdCBjb3VsZCBiZQoKICAgIEBSZXN1bHQgPSAoCiAgICAgICAgTG9ja2VkID0+IHsKICAgICAgICAgICAgQWxsID0+IDEsCiAgICAgICAgICAgIE5ldyA9PiAxLAogICAgICAgIH0sCgogICAgICAgIFdhdGNoZWQgPT4geyAgICAgICAjIE9wdGlvbmFsIGlmIGZlYXR1cmUgaXMgZW5hYmxlZAogICAgICAgICAgICBBbGwgPT4gMiwKICAgICAgICAgICAgTmV3ID0+IDAsCiAgICAgICAgfSwKCiAgICAgICAgUmVzcG9uc2libGUgPT4geyAgICMgT3B0aW9uYWwgaWYgZmVhdHVyZSBpcyBlbmFibGVkCiAgICAgICAgICAgIEFsbCA9PiAxLAogICAgICAgICAgICBOZXcgPT4gMSwKICAgICAgICB9LAogICAgKTsKCj1jdXQKCnN1YiBCYWRnZXMgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSBARGF0YTsKCiAgICAjIGdldCB0aWNrZXQgb2JqZWN0CiAgICBteSAkVGlja2V0T2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlRpY2tldCcpOwoKICAgICMgbG9ja2VkCiAgICBpZiAoMSkgewogICAgICAgIG15ICRDb3VudCA9ICRUaWNrZXRPYmplY3QtPlRpY2tldFNlYXJjaCgKICAgICAgICAgICAgUmVzdWx0ICAgICA9PiAnQ09VTlQnLAogICAgICAgICAgICBMb2NrcyAgICAgID0+IFsnbG9jayddLAogICAgICAgICAgICBPd25lcklEcyAgID0+IFsgJFBhcmFte1VzZXJJRH0gXSwKICAgICAgICAgICAgVXNlcklEICAgICA9PiAxLAogICAgICAgICAgICBQZXJtaXNzaW9uID0+ICdybycsCiAgICAgICAgKTsKICAgICAgICBteSAkQ291bnROZXcgPSAkVGlja2V0T2JqZWN0LT5UaWNrZXRTZWFyY2goCiAgICAgICAgICAgIFJlc3VsdCAgICAgPT4gJ0NPVU5UJywKICAgICAgICAgICAgTG9ja3MgICAgICA9PiBbJ2xvY2snXSwKICAgICAgICAgICAgT3duZXJJRHMgICA9PiBbICRQYXJhbXtVc2VySUR9IF0sCiAgICAgICAgICAgIFRpY2tldEZsYWcgPT4gewogICAgICAgICAgICAgICAgU2VlbiA9PiAxLAogICAgICAgICAgICB9LAogICAgICAgICAgICBUaWNrZXRGbGFnVXNlcklEID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICBVc2VySUQgICAgICAgICAgID0+IDEsCiAgICAgICAgICAgIFBlcm1pc3Npb24gICAgICAgPT4gJ3JvJywKICAgICAgICApOwogICAgICAgICRDb3VudE5ldyA9ICRDb3VudCAtICRDb3VudE5ldzsKICAgICAgICBwdXNoIEBEYXRhLCB7CiAgICAgICAgICAgIExvY2tlZCA9PiB7CiAgICAgICAgICAgICAgICBBbGwgPT4gJENvdW50LAogICAgICAgICAgICAgICAgTmV3ID0+ICRDb3VudE5ldywKICAgICAgICAgICAgICAgIH0KICAgICAgICB9OwogICAgfQoKICAgICMgZ2V0IGNvbmZpZyBvYmplY3QKICAgIG15ICRDb25maWdPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpOwoKICAgICMgcmVzcG9uc2libGUKICAgIGlmICggJENvbmZpZ09iamVjdC0+R2V0KCdUaWNrZXQ6OlJlc3BvbnNpYmxlJykgKSB7CiAgICAgICAgbXkgJENvdW50ID0gJFRpY2tldE9iamVjdC0+VGlja2V0U2VhcmNoKAogICAgICAgICAgICBSZXN1bHQgICAgICAgICA9PiAnQ09VTlQnLAogICAgICAgICAgICBTdGF0ZVR5cGUgICAgICA9PiAnT3BlbicsCiAgICAgICAgICAgIFJlc3BvbnNpYmxlSURzID0+IFsgJFBhcmFte1VzZXJJRH0gXSwKICAgICAgICAgICAgVXNlcklEICAgICAgICAgPT4gMSwKICAgICAgICAgICAgUGVybWlzc2lvbiAgICAgPT4gJ3JvJywKICAgICAgICApOwogICAgICAgIG15ICRDb3VudE5ldyA9ICRUaWNrZXRPYmplY3QtPlRpY2tldFNlYXJjaCgKICAgICAgICAgICAgUmVzdWx0ICAgICAgICAgPT4gJ0NPVU5UJywKICAgICAgICAgICAgU3RhdGVUeXBlICAgICAgPT4gJ09wZW4nLAogICAgICAgICAgICBSZXNwb25zaWJsZUlEcyA9PiBbICRQYXJhbXtVc2VySUR9IF0sCiAgICAgICAgICAgIFRpY2tldEZsYWcgICAgID0+IHsKICAgICAgICAgICAgICAgIFNlZW4gPT4gMSwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgVGlja2V0RmxhZ1VzZXJJRCA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgVXNlcklEICAgICAgICAgICA9PiAxLAogICAgICAgICAgICBQZXJtaXNzaW9uICAgICAgID0+ICdybycsCiAgICAgICAgKTsKICAgICAgICAkQ291bnROZXcgPSAkQ291bnQgLSAkQ291bnROZXc7CgogICAgICAgIHB1c2ggQERhdGEsIHsKICAgICAgICAgICAgUmVzcG9uc2libGUgPT4gewogICAgICAgICAgICAgICAgQWxsID0+ICRDb3VudCwKICAgICAgICAgICAgICAgIE5ldyA9PiAkQ291bnROZXcsCiAgICAgICAgICAgICAgICB9CiAgICAgICAgfTsKICAgIH0KCiAgICAjIHdhdGNoZWQKICAgIGlmICggJENvbmZpZ09iamVjdC0+R2V0KCdUaWNrZXQ6OldhdGNoZXInKSApIHsKCiAgICAgICAgIyBjaGVjayBhY2Nlc3MKICAgICAgICBteSAkQWNjZXNzT2sgPSAxOwogICAgICAgIG15IEBHcm91cHM7CiAgICAgICAgaWYgKCAkQ29uZmlnT2JqZWN0LT5HZXQoJ1RpY2tldDo6V2F0Y2hlckdyb3VwJykgKSB7CiAgICAgICAgICAgIEBHcm91cHMgPSBAeyAkQ29uZmlnT2JqZWN0LT5HZXQoJ1RpY2tldDo6V2F0Y2hlckdyb3VwJykgfTsKICAgICAgICB9CiAgICAgICAgaWYgKEBHcm91cHMpIHsKICAgICAgICAgICAgbXkgJEFjY2VzcyA9IDA7CiAgICAgICAgICAgIEdST1VQOgogICAgICAgICAgICBmb3IgbXkgJEdyb3VwIChAR3JvdXBzKSB7CiAgICAgICAgICAgICAgICBuZXh0IEdST1VQIGlmICEkUGFyYW17IlVzZXJJc0dyb3VwWyRHcm91cF0ifTsKICAgICAgICAgICAgICAgIGlmICggJFBhcmFteyJVc2VySXNHcm91cFskR3JvdXBdIn0gZXEgJ1llcycgKSB7CiAgICAgICAgICAgICAgICAgICAgJEFjY2VzcyA9IDE7CiAgICAgICAgICAgICAgICAgICAgbGFzdCBHUk9VUDsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyByZXR1cm4gb24gbm8gYWNjZXNzCiAgICAgICAgICAgIGlmICggISRBY2Nlc3MgKSB7CiAgICAgICAgICAgICAgICAkQWNjZXNzT2sgPSAwOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBpZiAoJEFjY2Vzc09rKSB7CgogICAgICAgICAgICAjIGZpbmQgd2F0Y2hlZCB0aWNrZXRzCiAgICAgICAgICAgIG15ICRDb3VudCA9ICRUaWNrZXRPYmplY3QtPlRpY2tldFNlYXJjaCgKICAgICAgICAgICAgICAgIFJlc3VsdCAgICAgICA9PiAnQ09VTlQnLAogICAgICAgICAgICAgICAgV2F0Y2hVc2VySURzID0+IFsgJFBhcmFte1VzZXJJRH0gXSwKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgICA9PiAxLAogICAgICAgICAgICAgICAgUGVybWlzc2lvbiAgID0+ICdybycsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIG15ICRDb3VudE5ldyA9ICRUaWNrZXRPYmplY3QtPlRpY2tldFNlYXJjaCgKICAgICAgICAgICAgICAgIFJlc3VsdCAgICAgICA9PiAnQ09VTlQnLAogICAgICAgICAgICAgICAgV2F0Y2hVc2VySURzID0+IFsgJFBhcmFte1VzZXJJRH0gXSwKICAgICAgICAgICAgICAgIFRpY2tldEZsYWcgICA9PiB7CiAgICAgICAgICAgICAgICAgICAgU2VlbiA9PiAxLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIFRpY2tldEZsYWdVc2VySUQgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgICAgICBVc2VySUQgICAgICAgICAgID0+IDEsCiAgICAgICAgICAgICAgICBQZXJtaXNzaW9uICAgICAgID0+ICdybycsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgICRDb3VudE5ldyA9ICRDb3VudCAtICRDb3VudE5ldzsKCiAgICAgICAgICAgIHB1c2ggQERhdGEsIHsKICAgICAgICAgICAgICAgIFdhdGNoZWQgPT4gewogICAgICAgICAgICAgICAgICAgIEFsbCA9PiAkQ291bnQsCiAgICAgICAgICAgICAgICAgICAgTmV3ID0+ICRDb3VudE5ldywKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH07CiAgICAgICAgfQogICAgfQoKICAgIHJldHVybiBARGF0YTsKfQoKPWl0ZW0gVGlja2V0TGlzdCgpCgpHZXQgdGhlIGxhc3QgY3VzdG9tZXIgYXJ0aWNsZSBpbmZvcm1hdGlvbiBvZiBhIHRpY2tldAoKICAgIG15IEBSZXN1bHQgPSAkaVBob25lT2JqZWN0LT5UaWNrZXRMaXN0KAogICAgICAgIFVzZXJJRCAgID0+IDEsCiAgICAgICAgVGlja2V0SUQgID0+IDE3NiwKICAgICk7CgogICAgI2EgcmVzdWx0IGNvdWxkIGJlCgogICAgQFJlc3VsdCA9ICgKICAgICAgICB7CiAgICAgICAgICAgIEFnZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0+IDE1OTYsCiAgICAgICAgICAgIEFydGljbGVJRCAgICAgICAgICAgICAgICAgICAgICAgID0+IDkyMywKICAgICAgICAgICAgQXJ0aWNsZVR5cGUgICAgICAgICAgICAgICAgICAgICAgPT4gInBob25lIiwKICAgICAgICAgICAgQm9keSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gIlRoaXMgaXMgYW4gb3BlbiB0aWNrZXQiLAogICAgICAgICAgICBDaGFyc2V0ICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAidXRmLTgiLAogICAgICAgICAgICBDb250ZW50Q2hhcnNldCAgICAgICAgICAgICAgICAgICA9PiAidXRmLTgiLAogICAgICAgICAgICBDb250ZW50VHlwZSAgICAgICAgICAgICAgICAgICAgICA9PiAidGV4dC9wbGFpbjsiLAogICAgICAgICAgICBjaGFyc2V0ICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAidXRmLTgiLAogICAgICAgICAgICBDcmVhdGVkICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAiMjAxMC0wNi0yMyAxMTo0NjoxNSIsCiAgICAgICAgICAgIENyZWF0ZWRCeSAgICAgICAgICAgICAgICAgICAgICAgID0+IDEsCiAgICAgICAgICAgIEZpcnN0UmVzcG9uc2VUaW1lICAgICAgICAgICAgICAgID0+IC0xMjk2LAogICAgICAgICAgICBGaXJzdFJlc3BvbnNlVGltZURlc3RpbmF0aW9uRGF0ZSA9PiAiMjAxMC0wNi0yMyAxMTo1MToxNCIsCiAgICAgICAgICAgIEZpcnN0UmVzcG9uc2VUaW1lRGVzdGluYXRpb25UaW1lID0+IDEyNzczMTE4NzQsCiAgICAgICAgICAgIEZpcnN0UmVzcG9uc2VUaW1lRXNjYWxhdGlvbiAgICAgID0+IDEsCiAgICAgICAgICAgIEZpcnN0UmVzcG9uc2VUaW1lV29ya2luZ1RpbWUgICAgID0+IC0xMjYwLAogICAgICAgICAgICBGcm9tICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAiY3VzdG9tZXJAb3Rycy5vcmciLAogICAgICAgICAgICBJbmNvbWluZ1RpbWUgICAgICAgICAgICAgICAgICAgICA9PiAxMjc3MzExNTc1LAogICAgICAgICAgICBMb2NrICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAibG9jayIsCiAgICAgICAgICAgIE1pbWVUeXBlICAgICAgICAgICAgICAgICAgICAgICAgID0+ICJ0ZXh0L3BsYWluIiwKICAgICAgICAgICAgT3duZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gIkFnZW50MSIsCiAgICAgICAgICAgIFByaW9yaXR5ICAgICAgICAgICAgICAgICAgICAgICAgID0+ICIzIG5vcm1hbCIsCiAgICAgICAgICAgIFByaW9yaXR5Q29sb3IgICAgICAgICAgICAgICAgICAgID0+ICIjY2RjZGNkIiwKICAgICAgICAgICAgUXVldWUgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gIk1pc2MiLAogICAgICAgICAgICBSZXNwb25zaWJsZSAgICAgICAgICAgICAgICAgICAgICA9PiAiQWdlbnQxIiwKICAgICAgICAgICAgU2VuZGVyVHlwZSAgICAgICAgICAgICAgICAgICAgICAgPT4gImN1c3RvbWVyIiwKICAgICAgICAgICAgU29sdXRpb25UaW1lICAgICAgICAgICAgICAgICAgICAgPT4gLTEyOTYsCiAgICAgICAgICAgIFNvbHV0aW9uVGltZURlc3RpbmF0aW9uRGF0ZSAgICAgID0+ICIyMDEwLTA2LTIzIDExOjUxOjE0IiwKICAgICAgICAgICAgU29sdXRpb25UaW1lRGVzdGluYXRpb25UaW1lICAgICAgPT4gMTI3NzMxMTg3NCwKICAgICAgICAgICAgU29sdXRpb25UaW1lRXNjYWxhdGlvbiAgICAgICAgICAgPT4gMSwKICAgICAgICAgICAgU29sdXRpb25UaW1lV29ya2luZ1RpbWUgICAgICAgICAgPT4gLTEyNjAsCiAgICAgICAgICAgIFN0YXRlICAgICAgICAgICAgICAgICAgICAgICAgICAgID0+ICJvcGVuIiwKICAgICAgICAgICAgU3ViamVjdCAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gIk9wZW4gVGlja2V0IFRlc3QiLAogICAgICAgICAgICBUaWNrZXRJRCAgICAgICAgICAgICAgICAgICAgICAgICA9PiAxNzYsCiAgICAgICAgICAgIFRpY2tldE51bWJlciAgICAgICAgICAgICAgICAgICAgID0+IDIwMTAwNjIzMTAwMDAwMTUsCiAgICAgICAgICAgIFRpdGxlICAgICAgICAgICAgICAgICAgICAgICAgICAgID0+ICJPcGVuIFRpY2tldCBUZXN0IiwKICAgICAgICAgICAgVG8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gIkp1bmsiLAogICAgICAgICAgICBUeXBlICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAiSW5jaWRlbnQiLAogICAgICAgICAgICBVbnRpbFRpbWUgICAgICAgICAgICAgICAgICAgICAgICA9PiAwLAogICAgICAgICAgICBVcGRhdGVUaW1lICAgICAgICAgICAgICAgICAgICAgICA9PiAtMTI5NSwKICAgICAgICAgICAgVXBkYXRlVGltZURlc3RpbmF0aW9uRGF0ZSAgICAgICAgPT4gIjIwMTAtMDYtMjMgMTE6NTE6MTUiLAogICAgICAgICAgICBVcGRhdGVUaW1lRGVzdGluYXRpb25UaW1lICAgICAgICA9PiAxMjc3MzExODc1LAogICAgICAgICAgICBVcGRhdGVUaW1lRXNjYWxhdGlvbiAgICAgICAgICAgICA9PiAxLAogICAgICAgICAgICBVcGRhdGVUaW1lV29ya2luZ1RpbWUgICAgICAgICAgICA9PiAtMTI2MCwKICAgICAgICAgICAgU2VlbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gMSwgIyBvbmx5IG9uIG90cnMgMy54IGZyYW1ld29yawogICAgICAgIH0sCiAgICApOwoKPWN1dAoKc3ViIFRpY2tldExpc3QgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAlQ29sb3IgPSAoCiAgICAgICAgMSA9PiAnI2NkY2RjZCcsCiAgICAgICAgMiA9PiAnI2NkY2RjZCcsCiAgICAgICAgMyA9PiAnI2NkY2RjZCcsCiAgICAgICAgNCA9PiAnI2ZmYWFhYScsCiAgICAgICAgNSA9PiAnI2ZmNTA1ZScsCiAgICApOwoKICAgICMgZ2V0IHRpY2tldCBvYmplY3QKICAgIG15ICRUaWNrZXRPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VGlja2V0Jyk7CgogICAgbXkgJUFydGljbGUgPSAkVGlja2V0T2JqZWN0LT5BcnRpY2xlTGFzdEN1c3RvbWVyQXJ0aWNsZSgKICAgICAgICBUaWNrZXRJRCA9PiAkUGFyYW17VGlja2V0SUR9LAogICAgKTsKICAgIGlmICglQXJ0aWNsZSkgewogICAgICAgICRBcnRpY2xle1ByaW9yaXR5Q29sb3J9ID0gJENvbG9yeyAkQXJ0aWNsZXtQcmlvcml0eUlEfSB9OwoKICAgICAgICBteSAlVGlja2V0RmxhZyA9ICRUaWNrZXRPYmplY3QtPlRpY2tldEZsYWdHZXQoCiAgICAgICAgICAgIFRpY2tldElEID0+ICRQYXJhbXtUaWNrZXRJRH0sCiAgICAgICAgICAgIFVzZXJJRCAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICk7CiAgICAgICAgaWYgKCAkVGlja2V0RmxhZ3tzZWVufSB8fCAkVGlja2V0RmxhZ3tTZWVufSApIHsKICAgICAgICAgICAgJEFydGljbGV7U2Vlbn0gPSAxOwogICAgICAgIH0KCiAgICAgICAgIyBzdHJpcCBvdXQgYWxsIGRhdGEKICAgICAgICBteSBARGVsZXRlID0gcXcoCiAgICAgICAgICAgIFJlcGx5VG8gTWVzc2FnZUlEIEluUmVwbHlUbyBSZWZlcmVuY2VzIEFnZVRpbWVVbml4IENyZWF0ZVRpbWVVbml4IFNlbmRlclR5cGVJRAogICAgICAgICAgICBJbmNvbWluZ1RpbWUgUmVhbFRpbGxUaW1lTm90VXNlZCBTZXJ2aWNlSUQgU0xBSUQgU3RhdGVUeXBlIEFyY2hpdmVGbGFnIFVubG9ja1RpbWVvdXQKICAgICAgICAgICAgQ2hhbmdlZAogICAgICAgICAgICApCiAgICAgICAgICAgIDsKCiAgICAgICAgZm9yIG15ICRLZXkgKEBEZWxldGUpIHsKICAgICAgICAgICAgZGVsZXRlICRBcnRpY2xleyRLZXl9OwogICAgICAgIH0KCiAgICAgICAgZm9yIG15ICRLZXkgKCBzb3J0IGtleXMgJUFydGljbGUgKSB7CiAgICAgICAgICAgIGlmICggIWRlZmluZWQgJEFydGljbGV7JEtleX0gfHwgJEFydGljbGV7JEtleX0gZXEgJycgKSB7CiAgICAgICAgICAgICAgICBkZWxldGUgJEFydGljbGV7JEtleX07CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKCAkS2V5ID1+IC9eRXNjYWxhLyApIHsKICAgICAgICAgICAgICAgIGRlbGV0ZSAkQXJ0aWNsZXskS2V5fTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgcmV0dXJuICVBcnRpY2xlOwogICAgfQoKICAgICMgcmV0dXJuIG9ubHkgdGlja2V0IGluZm9ybWF0aW9uIGlmIHRpY2tldCBoYXMgbm8gYXJ0aWNsZXMKICAgIG15ICVUaWNrZXREYXRhID0gJFNlbGYtPlRpY2tldEdldCgKICAgICAgICBUaWNrZXRJRCA9PiAkUGFyYW17VGlja2V0SUR9LAogICAgICAgIFVzZXJJRCAgID0+ICRQYXJhbXtVc2VySUR9CiAgICApOwogICAgcmV0dXJuICVUaWNrZXREYXRhOwp9Cgo9aXRlbSBUaWNrZXRHZXQoKQpHZXQgaW5mb3JtYXRpb24gb2YgYSB0aWNrZXQKCiAgICBteSBAUmVzdWx0ID0gJGlQaG9uZU9iamVjdC0+VGlja2V0R2V0KAogICAgICAgIFRpY2tldElEICA9PiAyMjQsCiAgICAgICAgVXNlcklEICAgID0+IDEsCiAgICApOwoKICAgICNhIHJlc3VsdCBjb3VsZCBiZQoKICAgIEBSZXN1bHQgPSAoCiAgICAgICAgQWNjb3VudGVkVGltZSAgID0+ICI1NDA0IiwKICAgICAgICBBZ2UgICAgICAgICAgICAgPT4gIjY4MTk0NiIsCiAgICAgICAgQ3VzdG9tZXJJRCAgICAgID0+ICJzdyIsCiAgICAgICAgQ3VzdG9tZXJVc2VySUQgID0+ICJEYXZpZCIsCiAgICAgICAgQ3JlYXRlZCAgICAgICAgID0+ICIyMDEwLTA3LTA2IDE0OjA1OjU0IiwKICAgICAgICBHcm91cElEICAgICAgICAgPT4gMSwKICAgICAgICBUaWNrZXRJRCAgICAgICAgPT4gMjI0LAogICAgICAgIExvY2tJRCAgICAgICAgICA9PiAyLAogICAgICAgIExvY2sgICAgICAgICAgICA9PiAibG9jayIKICAgICAgICBPd25lcklEICAgICAgICAgPT4gMTEzNCwKICAgICAgICBPd25lciAgICAgICAgICAgPT4gIkFheWxhIiwKICAgICAgICBQcmlvcml0eUNvbG9yICAgPT4gIiNjZGNkY2QiLAogICAgICAgIFByaW9yaXR5SUQgICAgICA9PiAxLAogICAgICAgIFByaW9yaXR5ICAgICAgICA9PiAiMSB2ZXJ5IGxvdyIsCiAgICAgICAgUXVldWUgICAgICAgICAgID0+ICJSYXciLAogICAgICAgIFF1ZXVlSUQgICAgICAgICA9PiAyLAogICAgICAgIFJlc3BvbnNpYmxlSUQgICA9PiAxMTM0LAogICAgICAgIFJlc3BvbnNpYmxlICAgICA9PiAiQWF5bGEiLAogICAgICAgIFNlZW4gICAgICAgICAgICA9PiAxLCAjIG9ubHkgb24gb3RycyAzLnggZnJhbWV3b3JrCiAgICAgICAgU3RhdGVJRCAgICAgICAgID0+ICA0LAogICAgICAgIFN0YXRlICAgICAgICAgICA9PiAib3BlbiIsCiAgICAgICAgVGlja2V0TnVtYmVyICAgID0+ICIyMDEwMDcwNjEwMDAwMjE1IiwKICAgICAgICBUaXRsZSAgICAgICAgICAgPT4gImlQaG9uZSBUZXN0IiwKICAgICAgICBUeXBlSUQgICAgICAgICAgPT4gMSwKICAgICAgICBUeXBlICAgICAgICAgICAgPT4gImRlZmF1bHQiLAogICAgICAgIFVudGlsVGltZSAgICAgICA9PiAiMCIsCiAgICApOwoKPWN1dAoKc3ViIFRpY2tldEdldCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgZ2V0IHRpY2tldCBvYmplY3QKICAgIG15ICRUaWNrZXRPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VGlja2V0Jyk7CgogICAgIyBwZXJtaXNzaW9uIGNoZWNrCiAgICBteSAkQWNjZXNzID0gJFRpY2tldE9iamVjdC0+VGlja2V0UGVybWlzc2lvbigKICAgICAgICBUeXBlICAgICA9PiAncm8nLAogICAgICAgIFRpY2tldElEID0+ICRQYXJhbXtUaWNrZXRJRH0sCiAgICAgICAgVXNlcklEICAgPT4gJFBhcmFte1VzZXJJRH0KICAgICk7CiAgICBpZiAoICEkQWNjZXNzICkgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAiWW91IG5lZWQgcm8gcGVybWlzc2lvbnMhIiwKICAgICAgICApOwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICBteSAlQ29sb3IgPSAoCiAgICAgICAgMSA9PiAnI2NkY2RjZCcsCiAgICAgICAgMiA9PiAnI2NkY2RjZCcsCiAgICAgICAgMyA9PiAnI2NkY2RjZCcsCiAgICAgICAgNCA9PiAnI2ZmYWFhYScsCiAgICAgICAgNSA9PiAnI2ZmNTA1ZScsCiAgICApOwoKICAgIG15ICVUaWNrZXQgPSAkVGlja2V0T2JqZWN0LT5UaWNrZXRHZXQoJVBhcmFtKTsKCiAgICAkVGlja2V0e1ByaW9yaXR5Q29sb3J9ID0gJENvbG9yeyAkVGlja2V0e1ByaW9yaXR5SUR9IH07CgogICAgbXkgJVRpY2tldEZsYWcgPSAkVGlja2V0T2JqZWN0LT5UaWNrZXRGbGFnR2V0KAogICAgICAgIFRpY2tldElEID0+ICRQYXJhbXtUaWNrZXRJRH0sCiAgICAgICAgVXNlcklEICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICApOwogICAgaWYgKCAkVGlja2V0RmxhZ3tzZWVufSB8fCAkVGlja2V0RmxhZ3tTZWVufSApIHsKICAgICAgICAkVGlja2V0e1NlZW59ID0gMTsKICAgIH0KICAgIGVsc2UgewoKICAgICAgICAjIGNoZWNrIGlmIHRpY2tldCBuZWVkIHRvIGJlIG1hcmtlZCBhcyBzZWVuCiAgICAgICAgbXkgJEFydGljbGVBbGxTZWVuID0gMTsKICAgICAgICBteSBASW5kZXggPSAkVGlja2V0T2JqZWN0LT5BcnRpY2xlSW5kZXgoIFRpY2tldElEID0+ICRUaWNrZXR7VGlja2V0SUR9ICk7CiAgICAgICAgaWYgKCBJc0FycmF5UmVmV2l0aERhdGEoIFxASW5kZXggKSApIHsKICAgICAgICAgICAgQVJUSUNMRUlEOgogICAgICAgICAgICBmb3IgbXkgJEFydGljbGVJRCAoQEluZGV4KSB7CiAgICAgICAgICAgICAgICBteSAlQXJ0aWNsZUZsYWcgPSAkVGlja2V0T2JqZWN0LT5BcnRpY2xlRmxhZ0dldCgKICAgICAgICAgICAgICAgICAgICBBcnRpY2xlSUQgPT4gJEFydGljbGVJRCwKICAgICAgICAgICAgICAgICAgICBVc2VySUQgICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgICMgbGFzdCBpZiBhcnRpY2xlIHdhcyBub3Qgc2hvd24KICAgICAgICAgICAgICAgIGlmICggISRBcnRpY2xlRmxhZ3tTZWVufSAmJiAhJEFydGljbGVGbGFne3NlZW59ICkgewogICAgICAgICAgICAgICAgICAgICRBcnRpY2xlQWxsU2VlbiA9IDA7CiAgICAgICAgICAgICAgICAgICAgbGFzdCBBUlRJQ0xFSUQ7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgbWFyayB0aWNrZXQgYXMgc2VlbiBpZiBhbGwgYXJ0aWNsZSBhcmUgc2hvd24KICAgICAgICAgICAgaWYgKCRBcnRpY2xlQWxsU2VlbikgewogICAgICAgICAgICAgICAgJFRpY2tldE9iamVjdC0+VGlja2V0RmxhZ1NldCgKICAgICAgICAgICAgICAgICAgICBUaWNrZXRJRCA9PiAkVGlja2V0e1RpY2tldElEfSwKICAgICAgICAgICAgICAgICAgICBLZXkgICAgICA9PiAnU2VlbicsCiAgICAgICAgICAgICAgICAgICAgVmFsdWUgICAgPT4gMSwKICAgICAgICAgICAgICAgICAgICBVc2VySUQgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgIyBhZGQgYWNjb3VudGVkIHRpbWUKICAgIG15ICRBY2NvdW50ZWRUaW1lID0gJFRpY2tldE9iamVjdC0+VGlja2V0QWNjb3VudGVkVGltZUdldCglUGFyYW0pOwogICAgaWYgKCBkZWZpbmVkICRBY2NvdW50ZWRUaW1lICkgewogICAgICAgICRUaWNrZXR7QWNjb3VudGVkVGltZX0gPSAkQWNjb3VudGVkVGltZTsKICAgIH0KCiAgICAjIHN0cmlwIG91dCBhbGwgZGF0YQogICAgbXkgQERlbGV0ZSA9IHF3KAogICAgICAgIFJlcGx5VG8gTWVzc2FnZUlEIEluUmVwbHlUbyBSZWZlcmVuY2VzIEFnZVRpbWVVbml4IENyZWF0ZVRpbWVVbml4IFNlbmRlclR5cGVJRAogICAgICAgIEluY29taW5nVGltZSBSZWFsVGlsbFRpbWVOb3RVc2VkIFNlcnZpY2VJRCBTTEFJRCBTdGF0ZVR5cGUgQXJjaGl2ZUZsYWcgVW5sb2NrVGltZW91dAogICAgICAgIENoYW5nZWQKICAgICAgICApCiAgICAgICAgOwoKICAgIGZvciBteSAkS2V5IChARGVsZXRlKSB7CiAgICAgICAgZGVsZXRlICRUaWNrZXR7JEtleX07CiAgICB9CiAgICBmb3IgbXkgJEtleSAoIHNvcnQga2V5cyAlVGlja2V0ICkgewogICAgICAgIGlmICggIWRlZmluZWQgJFRpY2tldHskS2V5fSB8fCAkVGlja2V0eyRLZXl9IGVxICcnICkgewogICAgICAgICAgICBkZWxldGUgJFRpY2tldHskS2V5fTsKICAgICAgICB9CiAgICAgICAgaWYgKCAkS2V5ID1+IC9eRXNjYWxhLyApIHsKICAgICAgICAgICAgZGVsZXRlICRUaWNrZXR7JEtleX07CiAgICAgICAgfQogICAgfQogICAgcmV0dXJuICVUaWNrZXQ7Cn0KCj1pdGVtIEFydGljbGVHZXQoKQoKR2V0IGluZm9ybWF0aW9uIGZyb20gYW4gYXJ0aWNsZQoKICAgIG15ICVSZXN1bHQgPSAkaVBob25lT2JqZWN0LT5BcnRpY2xlR2V0KCkKICAgICAgICBBcnRpY2xlSUQgID0+IDEwNTQsCiAgICAgICAgVXNlcklEICAgICA9PiAxLAogICAgKTsKCiAgICAjYSByZXN1bHQgY291bGQgYmUKCiAgICAlUmVzdXRsID0gKAogICAgICAgIEFnZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0+IDE2NjIwMiwKICAgICAgICBBY2NvdW50ZWRUaW1lICAgICAgICAgICAgICAgICAgICA9PiAxMjMsCiAgICAgICAgQXJ0aWNsZUlEICAgICAgICAgICAgICAgICAgICAgICAgPT4gMTA1NCwKICAgICAgICBBcnRpY2xlVHlwZUlEICAgICAgICAgICAgICAgICAgICA9PiA1LAogICAgICAgIEFydGljbGVUeXBlICAgICAgICAgICAgICAgICAgICAgID0+ICJwaG9uZSIsCiAgICAgICAgQm9keSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gImlQaG9uZSB0aWNrZXQgVGVzdCIsCiAgICAgICAgQ2hhcnNldCAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gInV0Zi04IiwKICAgICAgICBDb250ZW50Q2hhcnNldCAgICAgICAgICAgICAgICAgICA9PiAidXRmLTgiLAogICAgICAgIENvbnRlbnRUeXBlICAgICAgICAgICAgICAgICAgICAgID0+ICJ0ZXh0L3BsYWluOyBjaGFyc2V0PXV0Zi04IiwKICAgICAgICBDcmVhdGVkICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAiMjAxMC0wNy0xMiAxNDoxMzowNiIsCiAgICAgICAgQ3JlYXRlZEJ5ICAgICAgICAgICAgICAgICAgICAgICAgPT4gMTEzNCwKICAgICAgICBDdXN0b21lcklEICAgICAgICAgICAgICAgICAgICAgICA9PiAic3ciLAogICAgICAgIEN1c3RvbWVyVXNlcklEICAgICAgICAgICAgICAgICAgID0+ICJEYXZpZCIsCiAgICAgICAgRmlyc3RSZXNwb25zZVRpbWVEZXN0aW5hdGlvbkRhdGUgPT4gIjIwMTAtMDctMTIgMTQ6MTg6MDYiLAogICAgICAgIEZpcnN0UmVzcG9uc2VUaW1lRGVzdGluYXRpb25UaW1lID0+ICIxMjc4OTYyMjg2IiwKICAgICAgICBGaXJzdFJlc3BvbnNlVGltZUVzY2FsYXRpb24gICAgICA9PiAxLAogICAgICAgIEZpcnN0UmVzcG9uc2VUaW1lV29ya2luZ1RpbWUgICAgID0+IC04NjcwMCwKICAgICAgICBGaXJzdFJlc3BvbnNlVGltZSAgICAgICAgICAgICAgICA9PiAtMTY1OTAyLAogICAgICAgIEZyb20gICAgICAgICAgICAgICAgICAgICAgICAgICAgID0+ICJcIkRhdmlkIFByb3dzZVwiIDxwZEBzdy5jb20+IiwKICAgICAgICBMb2NrSUQgICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAyLAogICAgICAgIExvY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0+ICJsb2NrIiwKICAgICAgICBNaW1lVHlwZSAgICAgICAgICAgICAgICAgICAgICAgICA9PiAidGV4dC9wbGFpbiIsCiAgICAgICAgT3duZXJJRCAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gMTEzNCwKICAgICAgICBPd25lciAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAiQWF5bGEiLAogICAgICAgIFByaW9yaXR5SUQgICAgICAgICAgICAgICAgICAgICAgID0+IDEsCiAgICAgICAgUHJpb3JpdHkgICAgICAgICAgICAgICAgICAgICAgICAgPT4gIjEgdmVyeSBsb3ciLAogICAgICAgIFF1ZXVlSUQgICAgICAgICAgICAgICAgICAgICAgICAgID0+IDMsCiAgICAgICAgUXVldWUgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gIkp1bmsiLAogICAgICAgIFJlc3BvbnNpYmxlSUQgICAgICAgICAgICAgICAgICAgID0+IDExMzQsCiAgICAgICAgUmVzcG9uc2libGUgICAgICAgICAgICAgICAgICAgICAgPT4gIkFheWxhIiwKICAgICAgICBTZWVuICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAxLCAjIG9ubHkgb24gb3RycyAzLnggZnJhbWV3b3JrCiAgICAgICAgU2VuZGVyVHlwZSAgICAgICAgICAgICAgICAgICAgICAgPT4gImN1c3RvbWVyIiwKICAgICAgICBTb2x1dGlvblRpbWVEZXN0aW5hdGlvbkRhdGUgICAgICA9PiAiMjAxMC0wNy0xMiAxNDoxODowNiIsCiAgICAgICAgU29sdXRpb25UaW1lRGVzdGluYXRpb25UaW1lICAgICAgPT4gMTI3ODk2MjI4NiwKICAgICAgICBTb2x1dGlvblRpbWVXb3JraW5nVGltZSAgICAgICAgICA9PiAtODY3MDAsCiAgICAgICAgU29sdXRpb25UaW1lRXNjYWxhdGlvbiAgICAgICAgICAgPT4gMSwKICAgICAgICBTb2x1dGlvblRpbWUgICAgICAgICAgICAgICAgICAgICA9PiAtMTY1OTAyLAogICAgICAgIFN0YXRlSUQgICAgICAgICAgICAgICAgICAgICAgICAgID0+IDQsCiAgICAgICAgU3ViamVjdCAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gImlQaG9uZSBUZXN0IiwKICAgICAgICBTdGF0ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAib3BlbiIsCiAgICAgICAgVGlja2V0SUQgICAgICAgICAgICAgICAgICAgICAgICAgPT4gMjQ3LAogICAgICAgIFRpY2tldE51bWJlciAgICAgICAgICAgICAgICAgICAgID0+ICIyMDEwMDcxMjEwMDAwMDQzIiwKICAgICAgICBUaXRsZSAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAiaVBob25lIFRlc3QiLAogICAgICAgIFRvICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0+ICJKdW5rIiwKICAgICAgICBUeXBlSUQgICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAxLAogICAgICAgIFR5cGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0+ICJkZWZhdWx0IiwKICAgICAgICBVcGRhdGVUaW1lRGVzdGluYXRpb25EYXRlICAgICAgICA9PiAiMjAxMC0wNy0xMiAxNDoxODowNiIsCiAgICAgICAgVXBkYXRlVGltZURlc3RpbmF0aW9uVGltZSAgICAgICAgPT4gMTI3ODk2MjI4NiwKICAgICAgICBVcGRhdGVUaW1lRXNjYWxhdGlvbiAgICAgICAgICAgICA9PiAxLAogICAgICAgIFVwZGF0ZVRpbWVXb3JraW5nVGltZSAgICAgICAgICAgID0+IC04NjcwMCwKICAgICAgICBVcGRhdGVUaW1lICAgICAgICAgICAgICAgICAgICAgICA9PiAtMTY1OTAyLAogICAgICAgIFVudGlsVGltZSAgICAgICAgICAgICAgICAgICAgICAgID0+IDAsCiAgICApOwoKPWN1dAoKc3ViIEFydGljbGVHZXQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGdldCB0aWNrZXQgb2JqZWN0CiAgICBteSAkVGlja2V0T2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlRpY2tldCcpOwoKICAgICMgcGVybWlzc2lvbiBjaGVjawogICAgbXkgJUFydGljbGUgPSAkVGlja2V0T2JqZWN0LT5BcnRpY2xlR2V0KCVQYXJhbSk7CiAgICBteSAkQWNjZXNzICA9ICRUaWNrZXRPYmplY3QtPlRpY2tldFBlcm1pc3Npb24oCiAgICAgICAgVHlwZSAgICAgPT4gJ3JvJywKICAgICAgICBUaWNrZXRJRCA9PiAkQXJ0aWNsZXtUaWNrZXRJRH0sCiAgICAgICAgVXNlcklEICAgPT4gJFBhcmFte1VzZXJJRH0KICAgICk7CiAgICBpZiAoICEkQWNjZXNzICkgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAiWW91IG5lZWQgcm8gcGVybWlzc2lvbnMhIiwKICAgICAgICApOwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICBpZiAoJUFydGljbGUpIHsKCiAgICAgICAgIyBjaGVjayBpZiBhcnRpY2xlIGlzIHNlZW4KICAgICAgICBteSAlQXJ0aWNsZUZsYWcgPSAkVGlja2V0T2JqZWN0LT5BcnRpY2xlRmxhZ0dldCgKICAgICAgICAgICAgQXJ0aWNsZUlEID0+ICRQYXJhbXtBcnRpY2xlSUR9LAogICAgICAgICAgICBVc2VySUQgICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgKTsKICAgICAgICBpZiAoICRBcnRpY2xlRmxhZ3tzZWVufSB8fCAkQXJ0aWNsZUZsYWd7U2Vlbn0gKSB7CiAgICAgICAgICAgICRBcnRpY2xle1NlZW59ID0gMTsKICAgICAgICB9CgogICAgICAgICMgbWFyayBzaG93biBhcnRpY2xlIGFzIHNlZW4KICAgICAgICAkVGlja2V0T2JqZWN0LT5BcnRpY2xlRmxhZ1NldCgKICAgICAgICAgICAgQXJ0aWNsZUlEID0+ICRQYXJhbXtBcnRpY2xlSUR9LAogICAgICAgICAgICBLZXkgICAgICAgPT4gJ1NlZW4nLAogICAgICAgICAgICBWYWx1ZSAgICAgPT4gMSwKICAgICAgICAgICAgVXNlcklEICAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICk7CgogICAgICAgICMgY2hlY2sgaWYgdGlja2V0IG5lZWQgdG8gYmUgbWFya2VkIGFzIHNlZW4KICAgICAgICBteSAkQXJ0aWNsZUFsbFNlZW4gPSAxOwogICAgICAgIG15IEBJbmRleCA9ICRUaWNrZXRPYmplY3QtPkFydGljbGVJbmRleCggVGlja2V0SUQgPT4gJEFydGljbGV7VGlja2V0SUR9ICk7CiAgICAgICAgaWYgKCBJc0FycmF5UmVmV2l0aERhdGEoIFxASW5kZXggKSApIHsKICAgICAgICAgICAgQVJUSUNMRUlEOgogICAgICAgICAgICBmb3IgbXkgJEFydGljbGVJRCAoQEluZGV4KSB7CiAgICAgICAgICAgICAgICBteSAlQXJ0aWNsZUZsYWcgPSAkVGlja2V0T2JqZWN0LT5BcnRpY2xlRmxhZ0dldCgKICAgICAgICAgICAgICAgICAgICBBcnRpY2xlSUQgPT4gJEFydGljbGVJRCwKICAgICAgICAgICAgICAgICAgICBVc2VySUQgICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgICAgICApOwoKICAgICAgICAgICAgICAgICMgbGFzdCBpZiBhcnRpY2xlIHdhcyBub3Qgc2hvd24KICAgICAgICAgICAgICAgIGlmICggISRBcnRpY2xlRmxhZ3tTZWVufSAmJiAhJEFydGljbGVGbGFne3NlZW59ICkgewogICAgICAgICAgICAgICAgICAgICRBcnRpY2xlQWxsU2VlbiA9IDA7CiAgICAgICAgICAgICAgICAgICAgbGFzdCBBUlRJQ0xFSUQ7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgbWFyayB0aWNrZXQgYXMgc2VlbiBpZiBhbGwgYXJ0aWNsZSBhcmUgc2hvd24KICAgICAgICAgICAgaWYgKCRBcnRpY2xlQWxsU2VlbikgewogICAgICAgICAgICAgICAgJFRpY2tldE9iamVjdC0+VGlja2V0RmxhZ1NldCgKICAgICAgICAgICAgICAgICAgICBUaWNrZXRJRCA9PiAkQXJ0aWNsZXtUaWNrZXRJRH0sCiAgICAgICAgICAgICAgICAgICAgS2V5ICAgICAgPT4gJ1NlZW4nLAogICAgICAgICAgICAgICAgICAgIFZhbHVlICAgID0+IDEsCiAgICAgICAgICAgICAgICAgICAgVXNlcklEICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAjIGFkZCBhY2NvdW50ZWQgdGltZQogICAgICAgIG15ICRBY2NvdW50ZWRUaW1lID0gJFRpY2tldE9iamVjdC0+QXJ0aWNsZUFjY291bnRlZFRpbWVHZXQoJVBhcmFtKTsKICAgICAgICBpZiAoIGRlZmluZWQgJEFjY291bnRlZFRpbWUgKSB7CiAgICAgICAgICAgICRBcnRpY2xle0FjY291bnRlZFRpbWV9ID0gJEFjY291bnRlZFRpbWU7CiAgICAgICAgfQoKICAgICAgICAjIHN0cmlwIG91dCBhbGwgZGF0YQogICAgICAgIG15IEBEZWxldGUgPSBxdygKICAgICAgICAgICAgUmVwbHlUbyBNZXNzYWdlSUQgSW5SZXBseVRvIFJlZmVyZW5jZXMgQWdlVGltZVVuaXggQ3JlYXRlVGltZVVuaXggU2VuZGVyVHlwZUlECiAgICAgICAgICAgIEluY29taW5nVGltZSBSZWFsVGlsbFRpbWVOb3RVc2VkIFNlcnZpY2VJRCBTTEFJRFN0YXRlVHlwZSBBcmNoaXZlRmxhZyBVbmxvY2tUaW1lb3V0CiAgICAgICAgICAgIENoYW5nZWQKICAgICAgICAgICAgKQogICAgICAgICAgICA7CgogICAgICAgIGZvciBteSAkS2V5IChARGVsZXRlKSB7CiAgICAgICAgICAgIGRlbGV0ZSAkQXJ0aWNsZXskS2V5fTsKICAgICAgICB9CgogICAgICAgIGZvciBteSAkS2V5ICggc29ydCBrZXlzICVBcnRpY2xlICkgewogICAgICAgICAgICBpZiAoICFkZWZpbmVkICRBcnRpY2xleyRLZXl9IHx8ICRBcnRpY2xleyRLZXl9IGVxICcnICkgewogICAgICAgICAgICAgICAgZGVsZXRlICRBcnRpY2xleyRLZXl9OwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmICggJEtleSA9fiAvXkVzY2FsYS8gKSB7CiAgICAgICAgICAgICAgICBkZWxldGUgJEFydGljbGV7JEtleX07CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIHJldHVybiAlQXJ0aWNsZTsKICAgIH0KICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgTWVzc2FnZSAgPT4gJ05vIEFydGljbGVzIGZvdW5kIGluIHRoaXMgdGlja2V0JywKICAgICk7CiAgICByZXR1cm4gLTE7Cn0KCj1pdGVtIFNlcnZpY2VzR2V0KCkKR2V0IGEgSGFzaCByZWZlcmVuY2UgdG8gYWxsIHBvc3NpYmxlIHNlcnZpY2VzIGJhc2VkIG9uIGEgVGlja2V0IG9yIFF1ZXVlIGFuZCBDdXN0b21lclVzZXIKCiAgICBteSAkUmVzdWx0ID0gJGlQaG9uZU9iamVjdC0+U2VydmljZXNHZXQoCiAgICAgICAgVXNlcklEICAgICAgICAgID0+IDEsCiAgICAgICAgUXVldWVJRCAgICAgICAgID0+IDMsICAjIHx8IFRpY2tldElEIE9wdGlvbmFsCiAgICAgICAgVGlja2V0SUQgICAgICAgID0+IDIzLCAjIHx8IFF1ZXVlSUQgT3B0aW9uYWwKICAgICAgICBDdXN0b21lclVzZXJJRCAgPT4gIkN1c3RvbWVyIiwKICAgICk7CgogICAgIyBhIHJlc3VsdCBjb3VsZCBiZQoKICAgICRSZXN1bHQgPSBbCiAgICAgICAgMSA9PiAiU2VydmljZSBBIiwKICAgICAgICAzID0+ICJTZXJ2aWNlIEE6OlN1YlNlcnZpY2UgMSIsCiAgICAgICAgMiA9PiAiU2VydmljZSBCIgogICAgXSwKCj1jdXQKCnN1YiBTZXJ2aWNlc0dldCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICVTZXJ2aWNlID0gKCk7CgogICAgIyBnZXQgc2VydmljZQogICAgaWYgKCAoICRQYXJhbXtRdWV1ZUlEfSB8fCAkUGFyYW17VGlja2V0SUR9ICkgJiYgJFBhcmFte0N1c3RvbWVyVXNlcklEfSApIHsKICAgICAgICAlU2VydmljZSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpUaWNrZXQnKS0+VGlja2V0U2VydmljZUxpc3QoCiAgICAgICAgICAgICVQYXJhbSwKICAgICAgICAgICAgQWN0aW9uID0+ICRQYXJhbXtBY3Rpb259LAogICAgICAgICAgICBVc2VySUQgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgKTsKICAgIH0KICAgIHJldHVybiBcJVNlcnZpY2U7Cn0KCj1pdGVtIFNMQXNHZXQoKQpHZXQgYSBIYXNoIHJlZmVyZW5jZSB0byBhbGwgcG9zc2libGUgU0xBcyBiYXNlZCBvbiBhIFNlcnZpY2UKCiAgICBteSAkUmVzdWx0ID0gJGlQaG9uZU9iamVjdC0+U0xBc0dldCgKICAgICAgICBTZXJ2aWNlSUQgICAgICAgPT4gMSwKICAgICAgICBRdWV1ZUlEICAgICAgICAgPT4gMywgICN8fCBUaWNrZVRJRCBvcHRpb25hbAogICAgICAgIFRpY2tldElEICAgICAgICA9PiAyMjMgI3x8IFF1ZXVlSUQgb3B0aW9uYWwKICAgICAgICBVc2VySUQgICAgICAgICAgPT4gMSwKICAgICk7CgogICAgIyBhIHJlc3VsdCBjb3VsZCBiZQoKICAgICRSZXN1bHQgPSBbCiAgICAgICAgMSA9PiAiU0xBIEdvbGQgZm9yIFNlcnZpY2UgQSIsCiAgICAgICAgMyA9PiAiU0xBIFNpbHZlciBmb3IgU2VydmljZSBBIiwKICAgIF0sCgo9Y3V0CgpzdWIgU0xBc0dldCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICVTTEEgPSAoKTsKCiAgICAjIGdldCBTTEEKICAgIGlmICggJFBhcmFte1NlcnZpY2VJRH0gKSB7CiAgICAgICAgJVNMQSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpUaWNrZXQnKS0+VGlja2V0U0xBTGlzdCgKICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICAgICBBY3Rpb24gPT4gJFBhcmFte0FjdGlvbn0sCiAgICAgICAgICAgIFVzZXJJRCA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICApOwogICAgfQogICAgcmV0dXJuIFwlU0xBOwp9Cgo9aXRlbSBVc2Vyc0dldCgpCkdldCBhIEhhc2ggcmVmZXJlbmNlIHRvIGFsbCB1c2VycyB0aGF0IGhhdmUgcmlnaHRzIG9uIGEgUXVldWUgb3IgdGhlIHVzZXJzIHRoYXQgaGF2ZSB0aGF0IHF1ZXVlIGluCnRoZSAiTXkgUXVldWVzIiBsaXN0CgogICAgbXkgJFJlc3VsdCA9ICRpUGhvbmVPYmplY3QtPlVzZXJzR2V0KAogICAgICAgIFF1ZXVlSUQgICAgICAgICA9PiAzLAogICAgICAgIEFsbFVzZXJzICAgICAgICA9PiAxICMgT3B0aW9uYWwsIFRvIGdldCB0aGUgY29tcGxldGUgbGlzdCBvZiB1c2VycyB3aXRoIHJpZ2h0cyBpbiB0aGUgcXVldWUKICAgICAgICBVc2VySUQgICAgICAgICAgPT4gMSwKICAgICk7CgogICAgIyBhIHJlc3VsdCBjb3VsZCBiZQoKICAgICRSZXN1bHQgPSBbCiAgICAgICAgMSAgICA9PiAiT1RSUyBBZG1pbiAocm9vdEBsb2NhbGhvc3QpIiwKICAgICAgICAxMTM4ID0+ICJBbXkgQWxsZW4gKEFheWxhKSAiCiAgICBdLAoKPWN1dAoKc3ViIFVzZXJzR2V0IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBnZXQgdXNlcnMKICAgIG15ICVTaG93blVzZXJzICAgICAgID0gKCk7CiAgICBteSAlQWxsR3JvdXBzTWVtYmVycyA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVc2VyJyktPlVzZXJMaXN0KAogICAgICAgIFR5cGUgID0+ICdMb25nJywKICAgICAgICBWYWxpZCA9PiAxLAogICAgKTsKCiAgICAjIGp1c3Qgc2hvdyBvbmx5IHVzZXJzIHdpdGggc2VsZWN0ZWQgY3VzdG9tIHF1ZXVlCiAgICBpZiAoICRQYXJhbXtRdWV1ZUlEfSAmJiAhJFBhcmFte0FsbFVzZXJzfSApIHsKICAgICAgICBteSBAVXNlcklEcyA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpUaWNrZXQnKS0+R2V0U3Vic2NyaWJlZFVzZXJJRHNCeVF1ZXVlSUQoJVBhcmFtKTsKICAgICAgICBmb3IgKCBzb3J0IGtleXMgJUFsbEdyb3Vwc01lbWJlcnMgKSB7CiAgICAgICAgICAgIG15ICRIaXQgPSAwOwogICAgICAgICAgICBmb3IgbXkgJFVJRCAoQFVzZXJJRHMpIHsKICAgICAgICAgICAgICAgIGlmICggJFVJRCBlcSAkXyApIHsKICAgICAgICAgICAgICAgICAgICAkSGl0ID0gMTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoICEkSGl0ICkgewogICAgICAgICAgICAgICAgZGVsZXRlICRBbGxHcm91cHNNZW1iZXJzeyRffTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICAjIHNob3cgYWxsIHN5c3RlbSB1c2VycwogICAgaWYgKCAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpLT5HZXQoJ1RpY2tldDo6Q2hhbmdlT3duZXJUb0V2ZXJ5b25lJykgKSB7CiAgICAgICAgJVNob3duVXNlcnMgPSAlQWxsR3JvdXBzTWVtYmVyczsKICAgIH0KCiAgICAjIHNob3cgYWxsIHVzZXJzIHdobyBhcmUgcncgaW4gdGhlIHF1ZXVlIGdyb3VwCiAgICBlbHNpZiAoICRQYXJhbXtRdWV1ZUlEfSApIHsKICAgICAgICBteSAkR0lEID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlF1ZXVlJyktPkdldFF1ZXVlR3JvdXBJRCgKICAgICAgICAgICAgUXVldWVJRCA9PiAkUGFyYW17UXVldWVJRH0sCiAgICAgICAgKTsKICAgICAgICBteSAlTWVtYmVyTGlzdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpHcm91cCcpLT5Hcm91cE1lbWJlckxpc3QoCiAgICAgICAgICAgIEdyb3VwSUQgPT4gJEdJRCwKICAgICAgICAgICAgVHlwZSAgICA9PiAncncnLAogICAgICAgICAgICBSZXN1bHQgID0+ICdIQVNIJywKICAgICAgICAgICAgQ2FjaGVkICA9PiAxLAogICAgICAgICk7CiAgICAgICAgZm9yICggc29ydCBrZXlzICVNZW1iZXJMaXN0ICkgewogICAgICAgICAgICBpZiAoICRBbGxHcm91cHNNZW1iZXJzeyRffSApIHsKICAgICAgICAgICAgICAgICRTaG93blVzZXJzeyRffSA9ICRBbGxHcm91cHNNZW1iZXJzeyRffTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KICAgIHJldHVybiBcJVNob3duVXNlcnM7Cn0KCj1pdGVtIE5leHRTdGF0ZXNHZXQoKQpHZXQgYSBIYXNoIHJlZmVyZW5jZSB0byBhbGwgcG9zc2libGUgc3RhdGVzIGJhc2VkIG9uIGEgVGlja2V0IG9yIFF1ZXVlCgogICAgbXkgJFJlc3VsdCA9ICRpUGhvbmVPYmplY3QtPk5leHRTdGF0ZXNHZXQoCiAgICAgICAgUXVldWVJRCAgICAgICAgID0+IDMsICAjfHwgVGlja2VUSUQgb3B0aW9uYWwKICAgICAgICBUaWNrZXRJRCAgICAgICAgPT4gMjIzICN8fCBRdWV1ZUlEIG9wdGlvbmFsCiAgICAgICAgVXNlcklEICAgICAgICAgID0+IDEsCiAgICApOwoKICAgICMgYSByZXN1bHQgY291bGQgYmUKCiAgICAkUmVzdWx0ID0gWwogICAgICAgIDEgID0+ICJuZXciLAogICAgICAgIDIgID0+ICJjbG9zZWQgc3VjY2Vzc2Z1bCIsCiAgICAgICAgMyAgPT4gImNsb3NlZCB1bnN1Y2Nlc3NmdWwiLAogICAgICAgIDQgID0+ICJvcGVuIiwKICAgICAgICA1ICA9PiAicmVtb3ZlZCIKICAgICAgICA2ICA9PiAicGVuZGluZyByZW1pbmRlciIsCiAgICAgICAgNyAgPT4gInBlbmRpbmcgYXV0byBjbG9zZSsiLAogICAgICAgIDggID0+ICJwZW5kaW5nIGF1dG8gY2xvc2UtIiwKICAgICAgICA5ICA9PiAibWVyZ2VkIiwKICAgICAgICAxMCA9PiAiY2xvc2VkIHdpdGggd29ya2Fyb3VuZCIsCiAgICBdLAoKPWN1dAoKc3ViIE5leHRTdGF0ZXNHZXQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAlTmV4dFN0YXRlcyA9ICgpOwogICAgaWYgKCAkUGFyYW17UXVldWVJRH0gfHwgJFBhcmFte1RpY2tldElEfSApIHsKICAgICAgICAlTmV4dFN0YXRlcyA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpUaWNrZXQnKS0+U3RhdGVMaXN0KAogICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgICAgIEFjdGlvbiA9PiAkUGFyYW17QWN0aW9ufSwKICAgICAgICAgICAgVXNlcklEID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICk7CiAgICB9CiAgICByZXR1cm4gXCVOZXh0U3RhdGVzOwp9Cgo9aXRlbSBQcmlvcml0aWVzR2V0KCkKR2V0IGEgSGFzaCByZWZlcmVuY2UgdG8gYWxsIHBvc3NpYmxlIHByaW9yaXRpZXMKCiAgICBteSAkUmVzdWx0ID0gJGlQaG9uZU9iamVjdC0+UHJpb3JpdGllc0dldCgKICAgICAgICBVc2VySUQgICAgICAgICAgPT4gMSwKICAgICk7CgogICAgIyBhIHJlc3VsdCBjb3VsZCBiZQoKICAgICRSZXN1bHQgPSBbCiAgICAgICAgMSA9PiAiMSB2ZXJ5IGxvdyIsCiAgICAgICAgMiA9PiAiMiBsb3ciLAogICAgICAgIDMgPT4gIjMgbm9ybWFsIiwKICAgICAgICA0ID0+ICI0IGhpZ2giLAogICAgICAgIDUgPT4gIjUgdmVyeSBoaWdoIiwKICAgIF0sCgo9Y3V0CgpzdWIgUHJpb3JpdGllc0dldCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICVQcmlvcml0aWVzID0gKCk7CgogICAgIyBnZXQgcHJpb3JpdHkKICAgICVQcmlvcml0aWVzID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlRpY2tldCcpLT5Qcmlvcml0eUxpc3QoCiAgICAgICAgJVBhcmFtLAogICAgICAgIEFjdGlvbiA9PiAkUGFyYW17QWN0aW9ufSwKICAgICAgICBVc2VySUQgPT4gJFBhcmFte1VzZXJJRH0sCiAgICApOwoKICAgIHJldHVybiBcJVByaW9yaXRpZXM7Cn0KCj1pdGVtIEN1c3RvbWVyU2VhcmNoKCkKR2V0IGEgSGFzaCByZWZlcmVuY2UgdG8gYWxsIHBvc3NpYmxlIGN1c3RvbWVycyBtYXRjaGluZyB0aGUgZ2l2ZW4gc2VhcmNoCnBhcmFtZXRlciwgdXNlICIqIiBmb3IgYWxsLgoKICAgIG15ICRSZXN1bHQgPSAkaVBob25lT2JqZWN0LT5DdXN0b21lclNlYXJjaCgKICAgICAgICBTZWFyY2ggICAgICAgICAgPT4gJ3N3JywKICAgICAgICBVc2VySUQgICAgICAgICAgPT4gMSwKICAgICk7CgogICAgIyBhIHJlc3VsdCBjb3VsZCBiZQoKICAgICRSZXN1bHQgPSBbCiAgICAgICAgUmF5ICAgPT4gJyJSYXkgUGFyayIgPHJwQHN3LmNvbT4nLAogICAgICAgIERhdmlkID0+ICciRGF2aWQgUHJvd3NlIiA8ZHBAc3cuY29tPicsCiAgICBdLAoKPWN1dAoKc3ViIEN1c3RvbWVyU2VhcmNoIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBnZXQgQXV0b0NvbXBsZXRlIHNldHRpbmdzIGZvcm0gY29uZmlnCiAgICAkU2VsZi0+e0NvbmZpZ30gPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpLT5HZXQoJ0F1dG9Db21wbGV0ZTo6QWdlbnQnKS0+e0RlZmF1bHR9OwoKICAgIG15ICVDdXN0b21lcnM7CgogICAgIyBzZWFyY2ggb25seSBpZiB0aGUgc2VhcmNoIHN0cmluZyBpcyBhdCBsZWFzdCBhcyBsb25nIGFzIHRoZSBNaW5pbXVtIFF1ZXJ5IExlbmd0aAogICAgaWYgKCBsZW5ndGgoICRQYXJhbXtTZWFyY2h9ICkgPj0gJFNlbGYtPntDb25maWd9LT57TWluUXVlcnlMZW5ndGh9ICkgewogICAgICAgICVDdXN0b21lcnMgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6Q3VzdG9tZXJVc2VyJyktPkN1c3RvbWVyU2VhcmNoKAogICAgICAgICAgICBTZWFyY2ggPT4gJFBhcmFte1NlYXJjaH0sCiAgICAgICAgKTsKICAgIH0KICAgIHJldHVybiBcJUN1c3RvbWVyczsKfQoKc3ViIFZlcnNpb25HZXQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBpZiAoICEkUGFyYW17VXNlcklEfSApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gJ05vIFVzZXJJRCBnaXZlbiEgUGxlYXNlIGNvbnRhY3QgdGhlIGFkbWluLicsCiAgICAgICAgKTsKICAgICAgICByZXR1cm4gLTE7CiAgICB9CgogICAgIyBnZXQgY29uZmlnIG9iamVjdAogICAgbXkgJENvbmZpZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyk7CgogICAgIyBnZXQgaG9tZSBwYXRoCiAgICBteSAkSG9tZSA9ICRDb25maWdPYmplY3QtPkdldCgnSG9tZScpOwoKICAgICMgbG9hZCBSRUxFQVNFIGZpbGUKICAgIGlmICggLWUgISIkSG9tZS92YXIvUkVMRUFTRS5pUGhvbmVIYW5kbGUiICkgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAiRVJST1I6ICRIb21lL3Zhci9SRUxFQVNFLmlQaG9uZUhhbmRsZSBkb2VzIG5vdCBleGlzdCEgVGhpcyBmaWxlIGlzIgogICAgICAgICAgICAgICAgLiAiIG5lZWRlZCBieSBpUGhvbmVIYW5kbGUsIHRoZSBzeXN0ZW0gd2lsbCBub3Qgd29yayB3aXRob3V0IHRoaXMgZmlsZS5cbiIsCiAgICAgICAgKTsKICAgICAgICByZXR1cm4gLTE7CiAgICB9CiAgICBteSAkUGFja2FnZU5hbWU7CiAgICBteSAkUGFja2FnZVZlcnNpb247CgogICAgIyByZWFkIFJFTEVBU0UgZmlsZSBhbmQgc3RvcmUgaXQgYXMgYW4gYXJyYXkgcmVmZXJlbmNlCiAgICBteSAkUHJvZHVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpNYWluJyktPkZpbGVSZWFkKAogICAgICAgIExvY2F0aW9uID0+ICIkSG9tZS92YXIvUkVMRUFTRS5pUGhvbmVIYW5kbGUiLAogICAgICAgIFJlc3VsdCAgID0+ICJBUlJBWSIsCiAgICApOwoKICAgICMgc2VuZCBhbmQgZXJyb3IgaWYgUkVMRUFTRSBmaWxlIHdhcyBub3QgcmVhZAogICAgaWYgKCAhJFByb2R1Y3QgKSB7CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJFUlJPUjogQ2FuJ3QgcmVhZCAkSG9tZS92YXIvUkVMRUFTRS5pUGhvbmVIYW5kbGUhIFRoaXMgZmlsZSBpcyIKICAgICAgICAgICAgICAgIC4gIiBuZWVkZWQgYnkgaVBob25lSGFuZGxlLCB0aGUgc3lzdGVtIHdpbGwgbm90IHdvcmsgd2l0aG91dCB0aGlzIGZpbGUuXG4iLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuIC0xOwogICAgfQoKICAgICMgZ2V0IFBhY2thZ2VOYW1lIGFuZCBQYWNrYWdlVmVyc2lvbiBmcm9tIFJFTEVBU0UgZmlsZQogICAgZm9yIG15ICRMaW5lICggQHskUHJvZHVjdH0gKSB7CgogICAgICAgICMgZmlsdGVyaW5nIG9mIGNvbW1lbnQgbGluZXMKICAgICAgICBpZiAoICRMaW5lICF+IG17XEEgXCN9bXN4ICkgewogICAgICAgICAgICBpZiAoICRMaW5lID1+IG17XEEgUFJPRFVDVCBcc3swLDJ9ID0gXHN7MCwyfSAoLiopIFxzezAsMn0gXHp9bXN4aSApIHsKICAgICAgICAgICAgICAgICRQYWNrYWdlTmFtZSA9ICQxOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2lmICggJExpbmUgPX4gbXtcQSBWRVJTSU9OIFxzezAsMn0gPSBcc3swLDJ9ICguKikgXHN7MCwyfSBcen1tc3hpICkgewogICAgICAgICAgICAgICAgJFBhY2thZ2VWZXJzaW9uID0gJDE7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgcmV0dXJuIHsKICAgICAgICBOYW1lICAgICAgPT4gJFBhY2thZ2VOYW1lLAogICAgICAgIFZlcnNpb24gICA9PiAkUGFja2FnZVZlcnNpb24sCiAgICAgICAgVmVuZG9yICAgID0+ICdPVFJTIEFHJywKICAgICAgICBVUkwgICAgICAgPT4gJ2h0dHA6Ly9vdHJzLm9yZy8nLAogICAgICAgIEZyYW1ld29yayA9PiAkQ29uZmlnT2JqZWN0LT5HZXQoJ1ZlcnNpb24nKSwKICAgIH07Cn0KCj1pdGVtIEN1c3RvbWVySURHZXQoKQpHZXQgdGhlIEN1c3RvbWVyIElEIGZyb20gYSBnaXZlbiBjdXN0b21lciBsb2dpbgoKICAgIG15ICRSZXN1dCA9ICRpUGhvbmVPYmplY3QtPkN1c3RvbWVySURHZXQoCiAgICAgICAgQ3VzdG9tZXJVc2VySUQgPT4gIkRhdmlkIjsKICAgICk7CgogICAgYSByZXN1bHQgY291bGQgYmUKCiAgICAkUmVzdWx0ID0gInN3IgoKPWN1dAoKc3ViIEN1c3RvbWVySURHZXQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIGZvciBwYXJhbWV0ZXJzCiAgICBpZiAoICEkUGFyYW17Q3VzdG9tZXJVc2VySUR9ICkgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAnTmVlZCBDdXN0b21lclVzZXJJRCEnLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuIC0xOwogICAgfQogICAgbXkgJEN1c3RvbWVySUQ7CgogICAgIyBnZXQgY3VzdG9tZXIgZGF0YQogICAgbXkgJUN1c3RvbWVyVXNlckRhdGEgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6Q3VzdG9tZXJVc2VyJyktPkN1c3RvbWVyVXNlckRhdGFHZXQoCiAgICAgICAgVXNlciA9PiAkUGFyYW17Q3VzdG9tZXJVc2VySUR9LAogICAgKTsKICAgIGlmICggJUN1c3RvbWVyVXNlckRhdGEgJiYgJEN1c3RvbWVyVXNlckRhdGF7VXNlckN1c3RvbWVySUR9ICkgewogICAgICAgICRDdXN0b21lcklEID0gJEN1c3RvbWVyVXNlckRhdGF7VXNlckN1c3RvbWVySUR9OwogICAgICAgIHJldHVybiAkQ3VzdG9tZXJJRDsKICAgIH0KICAgIGVsc2UgewogICAgICAgIHJldHVybiAnJzsKICAgIH0KfQoKPWl0ZW0gQXJ0aWNsZUluZGV4KCkKCnJldHVybnMgYW4gYXJyYXkgd2l0aCBhcnRpY2xlIGlkJ3Mgb3IgJycgaWYgdGlja2V0IGhhcyBubyBhcnRpY2xlcwoKICAgIG15IEBBcnRpY2xlSURzID0gJGlQaG9uZU9iamVjdC0+QXJ0aWNsZUluZGV4KAogICAgICAgIFRpY2tldElEID0+IDEyMywKICAgICk7CgogICAgbXkgQEFydGljbGVJRHMgPSAkaVBob25lT2JqZWN0LT5BcnRpY2xlSW5kZXgoCiAgICAgICAgU2VuZGVyVHlwZSA9PiAnY3VzdG9tZXInLAogICAgICAgIFRpY2tldElEICAgPT4gMTIzLAogICAgKTsKCj1jdXQKCnN1YiBBcnRpY2xlSW5kZXggewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSBASW5kZXggPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VGlja2V0JyktPkFydGljbGVJbmRleCglUGFyYW0pOwoKICAgIHJldHVybiBASW5kZXg7Cn0KCj1pdGVtIEluaXRDb25maWdHZXQoKQoKcmV0dXJucyBhIGhhc2ggcmVmZXJlbmNlIHdpdGggaW5pdGlhbCBjb25maWd1cmF0aW9uIHJlcXVpcmVkIGJ5IHRoZSBpUGhvbmUgQXBwCgogICAgbXkgJFJlc3VsdCA9ICRpUGhvbmVPYmplY3QtPkluaXRDb25maWdHZXQoCiAgICAgICAgVXNlcklEID0+IDEsCiAgICApOwoKICAgIGEgcmVzdWx0IGNvdWxkIGJlCgogICAgJFJlc3VsdCA9IFsKICAgICAgICBUaWNrZXRSZXNwb25zaWJsZSAgICAgICAgICA9PiAxLAogICAgICAgIFRpY2tldFdhdGNoZXIgICAgICAgICAgICAgID0+IDEsCiAgICAgICAgQ3VycmVudFRpbWVzdGFtcCAgICAgICAgICAgPT4gIjIwMTAtMTAtMjYgMTE6NTM6MzUiLAogICAgICAgIFZlcnNpb25HZXQgICAgICAgICAgICAgICAgID0+IHsKICAgICAgICAgICAgVVJMICAgICAgID0+ICJodHRwOi8vb3Rycy5vcmcvIiwKICAgICAgICAgICAgRnJhbWV3b3JrID0+ICIzLjMueCBnaXQiLAogICAgICAgICAgICBWZXJzaW9uICAgPT4gIjAuOS42IiwKICAgICAgICAgICAgVmVuZG9yICAgID0+ICJPVFJTIEFHIiwKICAgICAgICAgICAgTmFtZSAgICAgID0+ICJpUGhvbmVIYW5kbGUiCiAgICAgICAgfSwKICAgICAgICBDdXN0b21lclNlYXJjaEF1dG9Db21wbGV0ZSA9PiB7CiAgICAgICAgICAgIFF1ZXJ5RGVsYXkgICAgICAgICAgPT4gMC4xLAogICAgICAgICAgICBBY3RpdmUgICAgICAgICAgICAgID0+IDEsCiAgICAgICAgICAgIE1heFJlc3VsdHNEaXNwbGF5ZWQgPT4gMjAsCiAgICAgICAgICAgIFR5cGVBaGVhZCAgICAgICAgICAgPT4gZmFsc2UsCiAgICAgICAgICAgIE1pblF1ZXJ5TGVuZ3RoICAgICAgPT4gMywKICAgICAgICB9LAogICAgICAgIERlZmF1bHRDaGFyc2V0ICAgICAgICAgICAgID0+ICJ1dGYtOCIsCiAgICBdOwoKPWN1dAoKc3ViIEluaXRDb25maWdHZXQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBpZiAoICEkUGFyYW17VXNlcklEfSApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gJ05vIFVzZXJJRCBnaXZlbiEgUGxlYXNlIGNvbnRhY3QgdGhlIGFkbWluLicsCiAgICAgICAgKTsKICAgICAgICByZXR1cm4gLTE7CiAgICB9CgogICAgIyBnZXQgY29uZmlnIG9iamVjdAogICAgbXkgJENvbmZpZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyk7CgogICAgbXkgJUluaXRDb25maWc7CgogICAgJEluaXRDb25maWd7VGlja2V0V2F0Y2hlcn0gICAgICAgICAgICAgID0gJENvbmZpZ09iamVjdC0+R2V0KCdUaWNrZXQ6OldhdGNoZXInKTsKICAgICRJbml0Q29uZmlne1RpY2tldFJlc3BvbnNpYmxlfSAgICAgICAgICA9ICRDb25maWdPYmplY3QtPkdldCgnVGlja2V0OjpSZXNwb25zaWJsZScpOwogICAgJEluaXRDb25maWd7RGVmYXVsdENoYXJzZXR9ICAgICAgICAgICAgID0gJENvbmZpZ09iamVjdC0+R2V0KCdEZWZhdWx0Q2hhcnNldCcpOwogICAgJEluaXRDb25maWd7Q3VzdG9tZXJTZWFyY2hBdXRvQ29tcGxldGV9ID0gJENvbmZpZ09iamVjdC0+R2V0KCdBdXRvQ29tcGxldGU6OkFnZW50JyktPntEZWZhdWx0fTsKICAgICRJbml0Q29uZmlne0N1cnJlbnRUaW1lc3RhbXB9ICAgICAgICAgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpUaW1lJyktPkN1cnJlbnRUaW1lc3RhbXAoKTsKICAgICRJbml0Q29uZmlne1ZlcnNpb25HZXR9ICAgICAgICAgICAgICAgICA9ICRTZWxmLT5WZXJzaW9uR2V0KCVQYXJhbSk7CgogICAgcmV0dXJuIFwlSW5pdENvbmZpZzsKfQoKIyBpbnRlcm5hbCBzdWJyb3V0aW5lcwoKMTsKCj1iYWNrCgo9aGVhZDEgVEVSTVMgQU5EIENPTkRJVElPTlMKClRoaXMgc29mdHdhcmUgaXMgcGFydCBvZiB0aGUgT1RSUyBwcm9qZWN0IChMPGh0dHBzOi8vb3Rycy5vcmcvPikuCgpUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQp0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKZGlkIG5vdCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIEw8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dD4uCgo9Y3V0Cg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE4IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQ6OkRyaXZlcjo6aVBob25lQ2hlY2tib3g7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7Cgp1c2UgS2VybmVsOjpTeXN0ZW06OlZhcmlhYmxlQ2hlY2sgcXcoOmFsbCk7Cgo9aGVhZDEgTkFNRQoKS2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZDo6RHJpdmVyOjppUGhvbmVDaGFja2JveAoKPWhlYWQxIFNZTk9QU0lTCgpEeW5hbWljRmllbGRzIENoZWNrYm94IGJhY2tlbmQgZHJpdmVyIGZvciBpUGhvbmVIYW5kbGUKCj1oZWFkMSBQVUJMSUMgSU5URVJGQUNFCgpUaGlzIG1vZHVsZSBpbXBsZW1lbnRzIHRoZSBwdWJsaWMgaW50ZXJmYWNlIG9mIEw8S2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZDo6QmFja2VuZD4uClBsZWFzZSBsb29rIHRoZXJlIGZvciBhIGRldGFpbGVkIHJlZmVyZW5jZSBvZiB0aGUgZnVuY3Rpb25zLgoKPW92ZXIgNAoKPWN1dAoKc3ViIElQaG9uZUZpZWxkUGFyYW1ldGVyQnVpbGQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIHRha2UgY29uZmlnIGZyb20gZmllbGQgY29uZmlnCiAgICBteSAkRmllbGRDb25maWcgPSAkUGFyYW17RHluYW1pY0ZpZWxkQ29uZmlnfS0+e0NvbmZpZ307CiAgICBteSAkRmllbGROYW1lICAgPSAnRHluYW1pY0ZpZWxkXycgLiAkUGFyYW17RHluYW1pY0ZpZWxkQ29uZmlnfS0+e05hbWV9OwogICAgbXkgJEZpZWxkTGFiZWwgID0gJFBhcmFte0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCAkUGFyYW17RHluYW1pY0ZpZWxkQ29uZmlnfS0+e0xhYmVsfSApOwoKICAgIG15ICRWYWx1ZSA9ICcnOwoKICAgICMgc2V0IHRoZSBmaWVsZCB2YWx1ZSBvciBkZWZhdWx0CiAgICBpZiAoICRQYXJhbXtVc2VEZWZhdWx0VmFsdWV9ICkgewogICAgICAgICRWYWx1ZSA9ICggZGVmaW5lZCAkRmllbGRDb25maWctPntEZWZhdWx0VmFsdWV9ID8gJEZpZWxkQ29uZmlnLT57RGVmYXVsdFZhbHVlfSA6ICcnICk7CiAgICB9CiAgICAkVmFsdWUgPSAkUGFyYW17VmFsdWV9IGlmIGRlZmluZWQgJFBhcmFte1ZhbHVlfTsKCiAgICAjIHNldCBQb3NzaWJsZVZhbHVlcwogICAgbXkgJFBvc3NpYmxlVmFsdWVzID0gewogICAgICAgIDAgPT4gJFBhcmFte0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCdVbmNoZWNrZWQnKSB8fCAnVW5jaGVja2VkJywKICAgICAgICAxID0+ICRQYXJhbXtMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSgnQ2hlY2tlZCcpICAgfHwgJ0NoZWNrZWQnLAogICAgfTsKCiAgICAjIGNyZWF0ZSB0aGUgZmllbGQgZGVmaW5pdGlvbgogICAgbXkgJERhdGEgPSB7CiAgICAgICAgTmFtZSAgICAgID0+ICRGaWVsZE5hbWUsCiAgICAgICAgVGl0bGUgICAgID0+ICRGaWVsZExhYmVsLAogICAgICAgIERhdGF0eXBlICA9PiAnVGV4dCcsCiAgICAgICAgVmlld3R5cGUgID0+ICdQaWNrZXInLAogICAgICAgIE9wdGlvbnMgICA9PiAkUG9zc2libGVWYWx1ZXMsCiAgICAgICAgTWFuZGF0b3J5ID0+ICRQYXJhbXtNYW5kYXRvcnl9LAogICAgICAgIERlZmF1bHQgICA9PiAkVmFsdWUsCiAgICB9OwoKICAgIHJldHVybiAkRGF0YTsKfQoKc3ViIElQaG9uZUZpZWxkVmFsdWVHZXQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAkRmllbGROYW1lID0gJ0R5bmFtaWNGaWVsZF8nIC4gJFBhcmFte0R5bmFtaWNGaWVsZENvbmZpZ30tPntOYW1lfTsKCiAgICBteSAkVmFsdWUgPSAkUGFyYW17JEZpZWxkTmFtZX07CgogICAgcmV0dXJuICRWYWx1ZTsKfQoKc3ViIElQaG9uZUZpZWxkVmFsdWVWYWxpZGF0ZSB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgZ2V0IHRoZSBmaWVsZCB2YWx1ZSBmcm9tIHBhcmFtCiAgICBteSAkVmFsdWUgPSAkUGFyYW17VmFsdWV9OwoKICAgIG15ICRTZXJ2ZXJFcnJvcjsKICAgIG15ICRFcnJvck1lc3NhZ2U7CgogICAgIyBwZXJmb3JtIG5lY2Vzc2FyeSB2YWxpZGF0aW9ucwogICAgaWYgKCAkUGFyYW17TWFuZGF0b3J5fSAmJiAhJFZhbHVlICkgewogICAgICAgICRTZXJ2ZXJFcnJvciA9IDE7CiAgICB9CiAgICBlbHNlIHsKCiAgICAgICAgIyB2YWxpZGF0ZSBpZiB2YWx1ZSBpcyBpbiBwb3NzaWJsZSB2YWx1ZXMgbGlzdCAoYnV0IGxldCBwYXNzIGVtcHR5IHZhbHVlcykKICAgICAgICBpZiAoICRWYWx1ZSBuZSAnMCcgJiYgJFZhbHVlIG5lICcxJyApIHsKICAgICAgICAgICAgJFNlcnZlckVycm9yICA9IDE7CiAgICAgICAgICAgICRFcnJvck1lc3NhZ2UgPSAnVGhlIGZpZWxkIGNvbnRlbnQgaXMgaW52YWxpZCc7CiAgICAgICAgfQogICAgfQoKICAgICMgY3JlYXRlIHJlc3VsdGluZyBzdHJ1Y3R1cmUKICAgIG15ICRSZXN1bHQgPSB7CiAgICAgICAgU2VydmVyRXJyb3IgID0+ICRTZXJ2ZXJFcnJvciwKICAgICAgICBFcnJvck1lc3NhZ2UgPT4gJEVycm9yTWVzc2FnZSwKICAgIH07CgogICAgcmV0dXJuICRSZXN1bHQ7Cn0KCjE7Cgo9YmFjawoKPWhlYWQxIFRFUk1TIEFORCBDT05ESVRJT05TCgpUaGlzIHNvZnR3YXJlIGlzIHBhcnQgb2YgdGhlIE9UUlMgcHJvamVjdCAoTDxodHRwczovL290cnMub3JnLz4pLgoKVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoR1BMKS4gSWYgeW91CmRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBMPGh0dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvZ3BsLTMuMC50eHQ+LgoKPWN1dAo=
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE4IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQ6OkRyaXZlcjo6aVBob25lRGF0ZTsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCnVzZSBLZXJuZWw6OlN5c3RlbTo6VmFyaWFibGVDaGVjayBxdyg6YWxsKTsKCm91ciBAT2JqZWN0RGVwZW5kZW5jaWVzID0gKAogICAgJ0tlcm5lbDo6U3lzdGVtOjpUaW1lJwopOwoKPWhlYWQxIE5BTUUKCktlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQ6OkRyaXZlcjo6aVBob25lRGF0ZQoKPWhlYWQxIFNZTk9QU0lTCgpEeW5hbWljRmllbGRzIERhdGUgYmFja2VuZCBkcml2ZXIgZm9yIGlQaG9uZUhhbmRsZQoKPWhlYWQxIFBVQkxJQyBJTlRFUkZBQ0UKClRoaXMgbW9kdWxlIGltcGxlbWVudHMgdGhlIHB1YmxpYyBpbnRlcmZhY2Ugb2YgTDxLZXJuZWw6OlN5c3RlbTo6RHluYW1pY0ZpZWxkOjpCYWNrZW5kPi4KUGxlYXNlIGxvb2sgdGhlcmUgZm9yIGEgZGV0YWlsZWQgcmVmZXJlbmNlIG9mIHRoZSBmdW5jdGlvbnMuCgo9b3ZlciA0Cgo9Y3V0CgpzdWIgSVBob25lRmllbGRQYXJhbWV0ZXJCdWlsZCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgdGFrZSBjb25maWcgZnJvbSBmaWVsZCBjb25maWcKICAgIG15ICRGaWVsZENvbmZpZyA9ICRQYXJhbXtEeW5hbWljRmllbGRDb25maWd9LT57Q29uZmlnfTsKICAgIG15ICRGaWVsZE5hbWUgICA9ICdEeW5hbWljRmllbGRfJyAuICRQYXJhbXtEeW5hbWljRmllbGRDb25maWd9LT57TmFtZX07CiAgICBteSAkRmllbGRMYWJlbCAgPSAkUGFyYW17TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoICRQYXJhbXtEeW5hbWljRmllbGRDb25maWd9LT57TGFiZWx9ICk7CgogICAgbXkgJFZhbHVlID0gJyc7CgogICAgIyBzZXQgdGhlIGZpZWxkIHZhbHVlIG9yIGRlZmF1bHQKICAgIGlmICggJFBhcmFte1VzZURlZmF1bHRWYWx1ZX0gKSB7CiAgICAgICAgbXkgJFRpbWVEaWZmID0gJEZpZWxkQ29uZmlnLT57RGVmYXVsdFZhbHVlfSAvLyAwOwoKICAgICAgICBpZiAoICRUaW1lRGlmZiBlcSAnJyApIHsKICAgICAgICAgICAgJFRpbWVEaWZmID0gMDsKICAgICAgICB9CgogICAgICAgICMgZ2V0IHRpbWUgb2JqZWN0CiAgICAgICAgbXkgJFRpbWVPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VGltZScpOwoKICAgICAgICAjIGdldCBjdXJyZW50IHN5c3RlbSB0aW1lCiAgICAgICAgbXkgJFN5c3RlbVRpbWUgPSAkVGltZU9iamVjdC0+U3lzdGVtVGltZSgpOwoKICAgICAgICAjIGdldCB0aW1lIHN0cmluZyArICRUaW1lIGRpZmYKICAgICAgICAkVmFsdWUgPSAkVGltZU9iamVjdC0+U3lzdGVtVGltZTJUaW1lU3RhbXAoCiAgICAgICAgICAgIFN5c3RlbVRpbWUgPT4gJFN5c3RlbVRpbWUgKyAkVGltZURpZmYsCiAgICAgICAgKTsKCiAgICAgICAgIyByZW1vdmUgdGhlIHRpbWUgcGFydAogICAgICAgICRWYWx1ZSA9fiBze1xBIChcZHs0fS1cZHsyfS1cZHsyfSkgIC4qIFx6fXskMX14bXM7CiAgICB9CiAgICAkVmFsdWUgPSAkUGFyYW17VmFsdWV9IGlmIGRlZmluZWQgJFBhcmFte1ZhbHVlfTsKCiAgICAjIGNyZWF0ZSB0aGUgZmllbGQgZGVmaW5pdGlvbgogICAgbXkgJERhdGEgPSB7CiAgICAgICAgTmFtZSAgICAgID0+ICRGaWVsZE5hbWUsCiAgICAgICAgVGl0bGUgICAgID0+ICRGaWVsZExhYmVsLAogICAgICAgIERhdGF0eXBlICA9PiAnRGF0ZScsCiAgICAgICAgVmlld3R5cGUgID0+ICdQaWNrZXInLAogICAgICAgIE1hbmRhdG9yeSA9PiAkUGFyYW17TWFuZGF0b3J5fSwKICAgICAgICBEZWZhdWx0ICAgPT4gJFZhbHVlIHx8ICcnLAogICAgfTsKCiAgICByZXR1cm4gJERhdGE7Cn0KCnN1YiBJUGhvbmVGaWVsZFZhbHVlR2V0IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgJEZpZWxkTmFtZSA9ICdEeW5hbWljRmllbGRfJyAuICRQYXJhbXtEeW5hbWljRmllbGRDb25maWd9LT57TmFtZX07CgogICAgbXkgJFZhbHVlID0gJFBhcmFteyRGaWVsZE5hbWV9OwoKICAgICMgcmVtb3ZlIHRoZSB0aW1lIHBhcnQKICAgIGlmICgkVmFsdWUpIHsKICAgICAgICAkVmFsdWUgPX4gc3tcQSAoXGR7NH0tXGR7Mn0tXGR7Mn0pICAuKiBcen17JDF9eG1zOwoKICAgICAgICAjIGFkZCAwcyB0byB0aGUgdGltZSBwYXJ0CiAgICAgICAgJFZhbHVlIC49ICcgMDA6MDA6MDAnOwogICAgfQoKICAgIHJldHVybiAkVmFsdWU7Cn0KCnN1YiBJUGhvbmVGaWVsZFZhbHVlVmFsaWRhdGUgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGdldCB0aGUgZmllbGQgdmFsdWUgZnJvbSBwYXJhbQogICAgbXkgJFZhbHVlID0gJFBhcmFte1ZhbHVlfTsKCiAgICBteSAkU2VydmVyRXJyb3I7CiAgICBteSAkRXJyb3JNZXNzYWdlOwoKICAgICMgcGVyZm9ybSBuZWNlc3NhcnkgdmFsaWRhdGlvbnMKICAgIGlmICggJFBhcmFte01hbmRhdG9yeX0gJiYgJFZhbHVlIGVxICcnICkgewoKICAgICAgICByZXR1cm4gewogICAgICAgICAgICBTZXJ2ZXJFcnJvciAgPT4gMSwKICAgICAgICAgICAgRXJyb3JNZXNzYWdlID0+ICRFcnJvck1lc3NhZ2UsCiAgICAgICAgfTsKICAgIH0KCiAgICAjIHRyeSB0byBjb252ZXJ0IHZhbHVlIHRvIGEgU3lzdGVtVGltZQogICAgaWYgKCRWYWx1ZSkgewogICAgICAgIG15ICRTeXN0ZW1UaW1lID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlRpbWUnKS0+VGltZVN0YW1wMlN5c3RlbVRpbWUoCiAgICAgICAgICAgIFN0cmluZyA9PiAkVmFsdWUsCiAgICAgICAgKTsKCiAgICAgICAgaWYgKCAhJFN5c3RlbVRpbWUgKSB7CiAgICAgICAgICAgIHJldHVybiB7CiAgICAgICAgICAgICAgICBTZXJ2ZXJFcnJvciAgPT4gMSwKICAgICAgICAgICAgICAgIEVycm9yTWVzc2FnZSA9PiAkRXJyb3JNZXNzYWdlLAogICAgICAgICAgICB9OwogICAgICAgIH0KICAgIH0KCiAgICAjIGNyZWF0ZSByZXN1bHRpbmcgc3RydWN0dXJlCiAgICBteSAkUmVzdWx0ID0gewogICAgICAgIFNlcnZlckVycm9yICA9PiAkU2VydmVyRXJyb3IsCiAgICAgICAgRXJyb3JNZXNzYWdlID0+ICRFcnJvck1lc3NhZ2UsCiAgICB9OwoKICAgIHJldHVybiAkUmVzdWx0Owp9CgoxOwoKPWJhY2sKCj1oZWFkMSBURVJNUyBBTkQgQ09ORElUSU9OUwoKVGhpcyBzb2Z0d2FyZSBpcyBwYXJ0IG9mIHRoZSBPVFJTIHByb2plY3QgKEw8aHR0cHM6Ly9vdHJzLm9yZy8+KS4KClRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCnRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQpkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgTDxodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0Pi4KCj1jdXQK
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE4IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQ6OkRyaXZlcjo6aVBob25lRGF0ZVRpbWU7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7Cgp1c2UgS2VybmVsOjpTeXN0ZW06OlZhcmlhYmxlQ2hlY2sgcXcoOmFsbCk7CgpvdXIgQE9iamVjdERlcGVuZGVuY2llcyA9ICgKICAgICdLZXJuZWw6OkNvbmZpZycsCiAgICAnS2VybmVsOjpTeXN0ZW06OlRpbWUnLAopOwoKPWhlYWQxIE5BTUUKCktlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQ6OkRyaXZlcjo6aVBob25lRGF0ZVRpbWUKCj1oZWFkMSBTWU5PUFNJUwoKRHluYW1pY0ZpZWxkcyBEYXRlVGltZSBiYWNrZW5kIGRyaXZlciBmb3IgaVBob25lSGFuZGxlCgo9aGVhZDEgUFVCTElDIElOVEVSRkFDRQoKVGhpcyBtb2R1bGUgaW1wbGVtZW50cyB0aGUgcHVibGljIGludGVyZmFjZSBvZiBMPEtlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQ6OkJhY2tlbmQ+LgpQbGVhc2UgbG9vayB0aGVyZSBmb3IgYSBkZXRhaWxlZCByZWZlcmVuY2Ugb2YgdGhlIGZ1bmN0aW9ucy4KCj1vdmVyIDQKCj1jdXQKCnN1YiBJUGhvbmVGaWVsZFBhcmFtZXRlckJ1aWxkIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyB0YWtlIGNvbmZpZyBmcm9tIGZpZWxkIGNvbmZpZwogICAgbXkgJEZpZWxkQ29uZmlnID0gJFBhcmFte0R5bmFtaWNGaWVsZENvbmZpZ30tPntDb25maWd9OwogICAgbXkgJEZpZWxkTmFtZSAgID0gJ0R5bmFtaWNGaWVsZF8nIC4gJFBhcmFte0R5bmFtaWNGaWVsZENvbmZpZ30tPntOYW1lfTsKICAgIG15ICRGaWVsZExhYmVsICA9ICRQYXJhbXtMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSggJFBhcmFte0R5bmFtaWNGaWVsZENvbmZpZ30tPntMYWJlbH0gKTsKCiAgICBteSAkVmFsdWUgPSAnJzsKCiAgICAjIHNldCB0aGUgZmllbGQgdmFsdWUgb3IgZGVmYXVsdAogICAgaWYgKCAkUGFyYW17VXNlRGVmYXVsdFZhbHVlfSApIHsKICAgICAgICBteSAkVGltZURpZmYgPSAoIGRlZmluZWQgJEZpZWxkQ29uZmlnLT57RGVmYXVsdFZhbHVlfSA/ICRGaWVsZENvbmZpZy0+e0RlZmF1bHRWYWx1ZX0gOiAwICk7CgogICAgICAgICMgZ2V0IHRpbWUgb2JqZWN0CiAgICAgICAgbXkgJFRpbWVPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VGltZScpOwoKICAgICAgICAjIGdldCBjdXJyZW50IHN5c3RlbSB0aW1lCiAgICAgICAgbXkgJFN5c3RlbVRpbWUgPSAkVGltZU9iamVjdC0+U3lzdGVtVGltZSgpOwoKICAgICAgICAjIGdldCB0aW1lIHN0cmluZyArICRUaW1lIGRpZmYKICAgICAgICAkVmFsdWUgPSAkVGltZU9iamVjdC0+U3lzdGVtVGltZTJUaW1lU3RhbXAoCiAgICAgICAgICAgIFN5c3RlbVRpbWUgPT4gJFN5c3RlbVRpbWUgKyAkVGltZURpZmYsCiAgICAgICAgKTsKICAgIH0KICAgICRWYWx1ZSA9ICRQYXJhbXtWYWx1ZX0gaWYgZGVmaW5lZCAkUGFyYW17VmFsdWV9OwoKICAgICMgY3JlYXRlIHRoZSBmaWVsZCBkZWZpbml0aW9uCiAgICBteSAkRGF0YSA9IHsKICAgICAgICBOYW1lICAgICAgPT4gJEZpZWxkTmFtZSwKICAgICAgICBUaXRsZSAgICAgPT4gJEZpZWxkTGFiZWwsCiAgICAgICAgRGF0YXR5cGUgID0+ICdEYXRlVGltZScsCiAgICAgICAgVmlld3R5cGUgID0+ICdQaWNrZXInLAogICAgICAgIE1hbmRhdG9yeSA9PiAkUGFyYW17TWFuZGF0b3J5fSwKICAgICAgICBEZWZhdWx0ICAgPT4gJFZhbHVlIHx8ICcnLAogICAgfTsKCiAgICByZXR1cm4gJERhdGE7Cn0KCnN1YiBJUGhvbmVGaWVsZFZhbHVlR2V0IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgJEZpZWxkTmFtZSA9ICdEeW5hbWljRmllbGRfJyAuICRQYXJhbXtEeW5hbWljRmllbGRDb25maWd9LT57TmFtZX07CgogICAgbXkgJFZhbHVlID0gJFBhcmFteyRGaWVsZE5hbWV9OwoKICAgICMgdGltZSB6b25lIHRyYW5zbGF0aW9uIGlmIG5lZWRlZAogICAgaWYgKAogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyktPkdldCgnVGltZVpvbmVVc2VyJykKICAgICAgICAmJiAkUGFyYW17VXNlclRpbWVab25lfQogICAgICAgICYmICRWYWx1ZQogICAgICAgICkKICAgIHsKCiAgICAgICAgJEtlcm5lbDo6T00tPk9iamVjdHNEaXNjYXJkKCBPYmplY3RzID0+IFsnS2VybmVsOjpTeXN0ZW06OlRpbWUnXSApOwoKICAgICAgICAjIGNvdmVydCAkVmFsdWUgdG8gYSBudW1lcmljIHRpbWUgZm9yIGNvbnZlcnNpb25zCiAgICAgICAgbXkgJFN5c3RlbVRpbWUgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VGltZScpLT5UaW1lU3RhbXAyU3lzdGVtVGltZSgKICAgICAgICAgICAgU3RyaW5nID0+ICRWYWx1ZSwKICAgICAgICApOwoKICAgICAgICAjIGNyZWF0ZSBhIHRpbWUgb2JqZWN0IGZvciB0aGUgdXNlciAoYmVjYXVzZSBvZiB0aGUgdGltZSB6b25lKQogICAgICAgICRLZXJuZWw6Ok9NLT5PYmplY3RzRGlzY2FyZCgKICAgICAgICAgICAgT2JqZWN0cyA9PiBbJ0tlcm5lbDo6U3lzdGVtOjpUaW1lJ10sCiAgICAgICAgKTsKICAgICAgICAkS2VybmVsOjpPTS0+T2JqZWN0UGFyYW1BZGQoCiAgICAgICAgICAgICdLZXJuZWw6OlN5c3RlbTo6VGltZScgPT4gewogICAgICAgICAgICAgICAgVXNlclRpbWVab25lID0+ICRQYXJhbXtVc2VyVGltZVpvbmV9LAogICAgICAgICAgICB9LAogICAgICAgICk7CgogICAgICAgICMgc3VidHJhY3QgdGhlIHVzZXIgdGltZSB6b25lIGZyb20gdGhlIGN1cnJlbnQgdmFsdWUKICAgICAgICAkU3lzdGVtVGltZSA9ICRTeXN0ZW1UaW1lIC0gKCAkUGFyYW17VXNlclRpbWVab25lfSAqIDM2MDAgKTsKCiAgICAgICAgIyBjb252ZXJ0IG51bWVyaWMgdmFsdWUgYWdhaW4gdG8gc3RyaW5nCiAgICAgICAgJFZhbHVlID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlRpbWUnKS0+U3lzdGVtVGltZTJUaW1lU3RhbXAoCiAgICAgICAgICAgIFN5c3RlbVRpbWUgPT4gJFN5c3RlbVRpbWUsCiAgICAgICAgKTsKICAgIH0KCiAgICByZXR1cm4gJFZhbHVlOwp9CgpzdWIgSVBob25lRmllbGRWYWx1ZVZhbGlkYXRlIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBnZXQgdGhlIGZpZWxkIHZhbHVlIGZyb20gcGFyYW0KICAgIG15ICRWYWx1ZSA9ICRQYXJhbXtWYWx1ZX07CgogICAgbXkgJFNlcnZlckVycm9yOwogICAgbXkgJEVycm9yTWVzc2FnZTsKCiAgICAjIHBlcmZvcm0gbmVjZXNzYXJ5IHZhbGlkYXRpb25zCiAgICBpZiAoICRQYXJhbXtNYW5kYXRvcnl9ICYmICRWYWx1ZSBlcSAnJyApIHsKCiAgICAgICAgcmV0dXJuIHsKICAgICAgICAgICAgU2VydmVyRXJyb3IgID0+IDEsCiAgICAgICAgICAgIEVycm9yTWVzc2FnZSA9PiAkRXJyb3JNZXNzYWdlLAogICAgICAgIH07CiAgICB9CgogICAgIyB0cnkgdG8gY29udmVydCB2YWx1ZSB0byBhIFN5c3RlbVRpbWUKICAgIGlmICgkVmFsdWUpIHsKICAgICAgICBteSAkU3lzdGVtVGltZSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpUaW1lJyktPlRpbWVTdGFtcDJTeXN0ZW1UaW1lKAogICAgICAgICAgICBTdHJpbmcgPT4gJFZhbHVlLAogICAgICAgICk7CgogICAgICAgIGlmICggISRTeXN0ZW1UaW1lICkgewogICAgICAgICAgICByZXR1cm4gewogICAgICAgICAgICAgICAgU2VydmVyRXJyb3IgID0+IDEsCiAgICAgICAgICAgICAgICBFcnJvck1lc3NhZ2UgPT4gJEVycm9yTWVzc2FnZSwKICAgICAgICAgICAgfTsKICAgICAgICB9CiAgICB9CgogICAgIyBjcmVhdGUgcmVzdWx0aW5nIHN0cnVjdHVyZQogICAgbXkgJFJlc3VsdCA9IHsKICAgICAgICBTZXJ2ZXJFcnJvciAgPT4gJFNlcnZlckVycm9yLAogICAgICAgIEVycm9yTWVzc2FnZSA9PiAkRXJyb3JNZXNzYWdlLAogICAgfTsKCiAgICByZXR1cm4gJFJlc3VsdDsKfQoKc3ViIF9UcmFuc2Zvcm1EYXRlU2VsZWN0aW9uIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyB0aW1lIHpvbmUgdHJhbnNsYXRpb24gaWYgbmVlZGVkCiAgICBpZiAoICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyktPkdldCgnVGltZVpvbmVVc2VyJykgJiYgJFBhcmFte1VzZXJUaW1lWm9uZX0gKSB7CgogICAgICAgICRLZXJuZWw6Ok9NLT5PYmplY3RzRGlzY2FyZCggT2JqZWN0cyA9PiBbJ0tlcm5lbDo6U3lzdGVtOjpUaW1lJ10gKTsKICAgICAgICBteSAkU3lzdGVtVGltZSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpUaW1lJyktPlRpbWVTdGFtcDJTeXN0ZW1UaW1lKAogICAgICAgICAgICBTdHJpbmcgPT4gJFBhcmFte1RpbWVTdGFtcH0sCiAgICAgICAgKTsKICAgICAgICAkU3lzdGVtVGltZSA9ICRTeXN0ZW1UaW1lIC0gKCAkU2VsZi0+e1VzZXJUaW1lWm9uZX0gKiAzNjAwICk7CgogICAgICAgICMgY3JlYXRlIGEgdGltZSBvYmplY3QgZm9yIHRoZSB1c2VyIChiZWNhdXNlIG9mIHRoZSB0aW1lIHpvbmUpCiAgICAgICAgJEtlcm5lbDo6T00tPk9iamVjdHNEaXNjYXJkKCBPYmplY3RzID0+IFsnS2VybmVsOjpTeXN0ZW06OlRpbWUnXSApOwogICAgICAgICRLZXJuZWw6Ok9NLT5PYmplY3RQYXJhbUFkZCgKICAgICAgICAgICAgJ0tlcm5lbDo6U3lzdGVtOjpUaW1lJyA9PiB7CiAgICAgICAgICAgICAgICBVc2VyVGltZVpvbmUgPT4gJFBhcmFte1VzZXJUaW1lWm9uZX0sCiAgICAgICAgICAgIH0sCiAgICAgICAgKTsKCiAgICAgICAgJFBhcmFte1RpbWVTdGFtcH0gPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VGltZScpLT5TeXN0ZW1UaW1lMlRpbWVTdGFtcCgKICAgICAgICAgICAgU3lzdGVtVGltZSA9PiAkU3lzdGVtVGltZSwKICAgICAgICApOwogICAgfQogICAgcmV0dXJuICRQYXJhbXtUaW1lU3RhbXB9Owp9CgoxOwoKPWJhY2sKCj1oZWFkMSBURVJNUyBBTkQgQ09ORElUSU9OUwoKVGhpcyBzb2Z0d2FyZSBpcyBwYXJ0IG9mIHRoZSBPVFJTIHByb2plY3QgKEw8aHR0cHM6Ly9vdHJzLm9yZy8+KS4KClRoaXMgc29mdHdhcmUgY29tZXMgd2l0aCBBQlNPTFVURUxZIE5PIFdBUlJBTlRZLiBGb3IgZGV0YWlscywgc2VlCnRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQpkaWQgbm90IHJlY2VpdmUgdGhpcyBmaWxlLCBzZWUgTDxodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0Pi4KCj1jdXQK
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE4IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQ6OkRyaXZlcjo6aVBob25lRHJvcGRvd247Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7Cgp1c2UgS2VybmVsOjpTeXN0ZW06OlZhcmlhYmxlQ2hlY2sgcXcoOmFsbCk7Cgo9aGVhZDEgTkFNRQoKS2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZDo6RHJpdmVyOjppUGhvbmVEcm9wZG93bgoKPWhlYWQxIFNZTk9QU0lTCgpEeW5hbWljRmllbGRzIERyb3Bkb3duIGJhY2tlbmQgZHJpdmVyIGZvciBpUGhvbmVIYW5kbGUKCj1oZWFkMSBQVUJMSUMgSU5URVJGQUNFCgpUaGlzIG1vZHVsZSBpbXBsZW1lbnRzIHRoZSBwdWJsaWMgaW50ZXJmYWNlIG9mIEw8S2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZDo6QmFja2VuZD4uClBsZWFzZSBsb29rIHRoZXJlIGZvciBhIGRldGFpbGVkIHJlZmVyZW5jZSBvZiB0aGUgZnVuY3Rpb25zLgoKPW92ZXIgNAoKPWN1dAoKc3ViIElQaG9uZUZpZWxkUGFyYW1ldGVyQnVpbGQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIHRha2UgY29uZmlnIGZyb20gZmllbGQgY29uZmlnCiAgICBteSAkRmllbGRDb25maWcgPSAkUGFyYW17RHluYW1pY0ZpZWxkQ29uZmlnfS0+e0NvbmZpZ307CiAgICBteSAkRmllbGROYW1lICAgPSAnRHluYW1pY0ZpZWxkXycgLiAkUGFyYW17RHluYW1pY0ZpZWxkQ29uZmlnfS0+e05hbWV9OwogICAgbXkgJEZpZWxkTGFiZWwgID0gJFBhcmFte0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCAkUGFyYW17RHluYW1pY0ZpZWxkQ29uZmlnfS0+e0xhYmVsfSApOwoKICAgIG15ICRWYWx1ZSA9ICcnOwoKICAgICMgc2V0IHRoZSBmaWVsZCB2YWx1ZSBvciBkZWZhdWx0CiAgICBpZiAoICRQYXJhbXtVc2VEZWZhdWx0VmFsdWV9ICkgewogICAgICAgICRWYWx1ZSA9ICggZGVmaW5lZCAkRmllbGRDb25maWctPntEZWZhdWx0VmFsdWV9ID8gJEZpZWxkQ29uZmlnLT57RGVmYXVsdFZhbHVlfSA6ICcnICk7CiAgICB9CiAgICAkVmFsdWUgPSAkUGFyYW17VmFsdWV9IGlmIGRlZmluZWQgJFBhcmFte1ZhbHVlfTsKCiAgICAjIHNldCBQb3NzaWJsZVZhbHVlcwogICAgbXkgJFBvc3NpYmxlVmFsdWVzID0gJEZpZWxkQ29uZmlnLT57UG9zc2libGVWYWx1ZXN9OwoKICAgIGlmICggJEZpZWxkQ29uZmlnLT57VHJhbnNsYXRhYmxlVmFsdWVzfSApIHsKICAgICAgICBpZiAoIElzSGFzaFJlZldpdGhEYXRhKCRQb3NzaWJsZVZhbHVlcykgKSB7CiAgICAgICAgICAgIGZvciBteSAkUG9zc2libGVLZXkgKCBzb3J0IGtleXMgJXskUG9zc2libGVWYWx1ZXN9ICkgewogICAgICAgICAgICAgICAgbXkgJE9yaWdpbmFsVmFsdWUgPSAkUG9zc2libGVWYWx1ZXMtPnskUG9zc2libGVLZXl9OwogICAgICAgICAgICAgICAgJFBvc3NpYmxlVmFsdWVzLT57JFBvc3NpYmxlS2V5fSA9ICRQYXJhbXtMYW5ndWFnZU9iamVjdH0tPlRyYW5zbGF0ZSgkT3JpZ2luYWxWYWx1ZSkgfHwgJE9yaWdpbmFsVmFsdWU7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgIyBzZXQgUG9zc2libGVOb25lIGF0dHJpYnV0ZQogICAgbXkgJEZpZWxkUG9zc2libGVOb25lOwogICAgaWYgKCBkZWZpbmVkICRQYXJhbXtPdmVycmlkZVBvc3NpYmxlTm9uZX0gKSB7CiAgICAgICAgJEZpZWxkUG9zc2libGVOb25lID0gJFBhcmFte092ZXJyaWRlUG9zc2libGVOb25lfTsKICAgIH0KICAgIGVsc2UgewogICAgICAgICRGaWVsZFBvc3NpYmxlTm9uZSA9ICRGaWVsZENvbmZpZy0+e1Bvc3NpYmxlTm9uZX0gfHwgMDsKICAgIH0KCiAgICBpZiAoJEZpZWxkUG9zc2libGVOb25lKSB7CiAgICAgICAgJFBvc3NpYmxlVmFsdWVzLT57Jyd9ID0gJy0nOwogICAgfQoKICAgICMgY3JlYXRlIHRoZSBmaWVsZCBkZWZpbml0aW9uCiAgICBteSAkRGF0YSA9IHsKICAgICAgICBOYW1lICAgICAgPT4gJEZpZWxkTmFtZSwKICAgICAgICBUaXRsZSAgICAgPT4gJEZpZWxkTGFiZWwsCiAgICAgICAgRGF0YXR5cGUgID0+ICdUZXh0JywKICAgICAgICBWaWV3dHlwZSAgPT4gJ1BpY2tlcicsCiAgICAgICAgT3B0aW9ucyAgID0+ICRQb3NzaWJsZVZhbHVlcywKICAgICAgICBNYW5kYXRvcnkgPT4gJFBhcmFte01hbmRhdG9yeX0sCiAgICAgICAgRGVmYXVsdCAgID0+ICRWYWx1ZSB8fCAnJywKICAgIH07CgogICAgcmV0dXJuICREYXRhOwp9CgpzdWIgSVBob25lRmllbGRWYWx1ZUdldCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICRGaWVsZE5hbWUgPSAnRHluYW1pY0ZpZWxkXycgLiAkUGFyYW17RHluYW1pY0ZpZWxkQ29uZmlnfS0+e05hbWV9OwoKICAgIG15ICRWYWx1ZSA9ICRQYXJhbXskRmllbGROYW1lfTsKCiAgICByZXR1cm4gJFZhbHVlOwp9CgpzdWIgSVBob25lRmllbGRWYWx1ZVZhbGlkYXRlIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBnZXQgdGhlIGZpZWxkIHZhbHVlIGZyb20gcGFyYW0KICAgIG15ICRWYWx1ZSA9ICRQYXJhbXtWYWx1ZX07CgogICAgbXkgJFNlcnZlckVycm9yOwogICAgbXkgJEVycm9yTWVzc2FnZTsKCiAgICAjIHBlcmZvcm0gbmVjZXNzYXJ5IHZhbGlkYXRpb25zCiAgICBpZiAoICRQYXJhbXtNYW5kYXRvcnl9ICYmICRWYWx1ZSBlcSAnJyApIHsKICAgICAgICAkU2VydmVyRXJyb3IgPSAxOwogICAgfQogICAgZWxzZSB7CgogICAgICAgICMgZ2V0IHBvc3NpYmxlIHZhbHVlcyBsaXN0CiAgICAgICAgbXkgJFBvc3NpYmxlVmFsdWVzID0gJFBhcmFte0R5bmFtaWNGaWVsZENvbmZpZ30tPntDb25maWd9LT57UG9zc2libGVWYWx1ZXN9OwoKICAgICAgICAjIHZhbGlkYXRlIGlmIHZhbHVlIGlzIGluIHBvc3NpYmxlIHZhbHVlcyBsaXN0IChidXQgbGV0IHBhc3MgZW1wdHkgdmFsdWVzKQogICAgICAgIGlmICggJFZhbHVlICYmICEkUG9zc2libGVWYWx1ZXMtPnskVmFsdWV9ICkgewogICAgICAgICAgICAkU2VydmVyRXJyb3IgID0gMTsKICAgICAgICAgICAgJEVycm9yTWVzc2FnZSA9ICdUaGUgZmllbGQgY29udGVudCBpcyBpbnZhbGlkJzsKICAgICAgICB9CiAgICB9CgogICAgIyBjcmVhdGUgcmVzdWx0aW5nIHN0cnVjdHVyZQogICAgbXkgJFJlc3VsdCA9IHsKICAgICAgICBTZXJ2ZXJFcnJvciAgPT4gJFNlcnZlckVycm9yLAogICAgICAgIEVycm9yTWVzc2FnZSA9PiAkRXJyb3JNZXNzYWdlLAogICAgfTsKCiAgICByZXR1cm4gJFJlc3VsdDsKfQoKMTsKCj1iYWNrCgo9aGVhZDEgVEVSTVMgQU5EIENPTkRJVElPTlMKClRoaXMgc29mdHdhcmUgaXMgcGFydCBvZiB0aGUgT1RSUyBwcm9qZWN0IChMPGh0dHBzOi8vb3Rycy5vcmcvPikuCgpUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQp0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKZGlkIG5vdCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIEw8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dD4uCgo9Y3V0Cg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE4IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQ6OkRyaXZlcjo6aVBob25lVGV4dDsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCnVzZSBLZXJuZWw6OlN5c3RlbTo6VmFyaWFibGVDaGVjayBxdyg6YWxsKTsKCj1oZWFkMSBOQU1FCgpLZXJuZWw6OlN5c3RlbTo6RHluYW1pY0ZpZWxkOjpEcml2ZXI6OmlQaG9uZVRleHQKCj1oZWFkMSBTWU5PUFNJUwoKRHluYW1pY0ZpZWxkcyBUZXh0IGJhY2tlbmQgZHJpdmVyIGZvciBpUGhvbmVIYW5kbGUKCj1oZWFkMSBQVUJMSUMgSU5URVJGQUNFCgpUaGlzIG1vZHVsZSBpbXBsZW1lbnRzIHRoZSBwdWJsaWMgaW50ZXJmYWNlIG9mIEw8S2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZDo6QmFja2VuZD4uClBsZWFzZSBsb29rIHRoZXJlIGZvciBhIGRldGFpbGVkIHJlZmVyZW5jZSBvZiB0aGUgZnVuY3Rpb25zLgoKPW92ZXIgNAoKPWN1dAoKc3ViIElQaG9uZUZpZWxkUGFyYW1ldGVyQnVpbGQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIHRha2UgY29uZmlnIGZyb20gZmllbGQgY29uZmlnCiAgICBteSAkRmllbGRDb25maWcgPSAkUGFyYW17RHluYW1pY0ZpZWxkQ29uZmlnfS0+e0NvbmZpZ307CiAgICBteSAkRmllbGROYW1lICAgPSAnRHluYW1pY0ZpZWxkXycgLiAkUGFyYW17RHluYW1pY0ZpZWxkQ29uZmlnfS0+e05hbWV9OwogICAgbXkgJEZpZWxkTGFiZWwgID0gJFBhcmFte0xhbmd1YWdlT2JqZWN0fS0+VHJhbnNsYXRlKCAkUGFyYW17RHluYW1pY0ZpZWxkQ29uZmlnfS0+e0xhYmVsfSApOwoKICAgIG15ICRWYWx1ZSA9ICcnOwoKICAgICMgc2V0IHRoZSBmaWVsZCB2YWx1ZSBvciBkZWZhdWx0CiAgICBpZiAoICRQYXJhbXtVc2VEZWZhdWx0VmFsdWV9ICkgewogICAgICAgICRWYWx1ZSA9ICggZGVmaW5lZCAkRmllbGRDb25maWctPntEZWZhdWx0VmFsdWV9ID8gJEZpZWxkQ29uZmlnLT57RGVmYXVsdFZhbHVlfSA6ICcnICk7CiAgICB9CiAgICAkVmFsdWUgPSAkUGFyYW17VmFsdWV9IGlmIGRlZmluZWQgJFBhcmFte1ZhbHVlfTsKCiAgICAjIGNyZWF0ZSB0aGUgZmllbGQgZGVmaW5pdGlvbgogICAgbXkgJERhdGEgPSB7CiAgICAgICAgTmFtZSAgICAgID0+ICRGaWVsZE5hbWUsCiAgICAgICAgVGl0bGUgICAgID0+ICRGaWVsZExhYmVsLAogICAgICAgIERhdGF0eXBlICA9PiAnVGV4dCcsCiAgICAgICAgVmlld3R5cGUgID0+ICdJbnB1dCcsCiAgICAgICAgTWluICAgICAgID0+IDEsCiAgICAgICAgTWF4ICAgICAgID0+IDIwMCwKICAgICAgICBNYW5kYXRvcnkgPT4gJFBhcmFte01hbmRhdG9yeX0sCiAgICAgICAgRGVmYXVsdCAgID0+ICRWYWx1ZSB8fCAnJywKICAgIH07CgogICAgcmV0dXJuICREYXRhOwp9CgpzdWIgSVBob25lRmllbGRWYWx1ZUdldCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICRGaWVsZE5hbWUgPSAnRHluYW1pY0ZpZWxkXycgLiAkUGFyYW17RHluYW1pY0ZpZWxkQ29uZmlnfS0+e05hbWV9OwoKICAgIG15ICRWYWx1ZSA9ICRQYXJhbXskRmllbGROYW1lfTsKCiAgICByZXR1cm4gJFZhbHVlOwp9CgpzdWIgSVBob25lRmllbGRWYWx1ZVZhbGlkYXRlIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBnZXQgdGhlIGZpZWxkIHZhbHVlIGZyb20gcGFyYW0KICAgIG15ICRWYWx1ZSA9ICRQYXJhbXtWYWx1ZX07CgogICAgbXkgJFNlcnZlckVycm9yOwogICAgbXkgJEVycm9yTWVzc2FnZTsKCiAgICAjIHBlcmZvcm0gbmVjZXNzYXJ5IHZhbGlkYXRpb25zCiAgICBpZiAoICRQYXJhbXtNYW5kYXRvcnl9ICYmICRWYWx1ZSBlcSAnJyApIHsKICAgICAgICAkU2VydmVyRXJyb3IgPSAxOwogICAgfQoKICAgICMgY3JlYXRlIHJlc3VsdGluZyBzdHJ1Y3R1cmUKICAgIG15ICRSZXN1bHQgPSB7CiAgICAgICAgU2VydmVyRXJyb3IgID0+ICRTZXJ2ZXJFcnJvciwKICAgICAgICBFcnJvck1lc3NhZ2UgPT4gJEVycm9yTWVzc2FnZSwKICAgIH07CgogICAgcmV0dXJuICRSZXN1bHQ7Cn0KCjE7Cgo9YmFjawoKPWhlYWQxIFRFUk1TIEFORCBDT05ESVRJT05TCgpUaGlzIHNvZnR3YXJlIGlzIHBhcnQgb2YgdGhlIE9UUlMgcHJvamVjdCAoTDxodHRwczovL290cnMub3JnLz4pLgoKVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoR1BMKS4gSWYgeW91CmRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBMPGh0dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvZ3BsLTMuMC50eHQ+LgoKPWN1dAo=
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE4IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQ6OkRyaXZlcjo6aVBob25lVGV4dEFyZWE7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7Cgp1c2UgS2VybmVsOjpTeXN0ZW06OlZhcmlhYmxlQ2hlY2sgcXcoOmFsbCk7Cgo9aGVhZDEgTkFNRQoKS2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZDo6RHJpdmVyOjppUGhvbmVUZXh0QXJlYQoKPWhlYWQxIFNZTk9QU0lTCgpEeW5hbWljRmllbGRzIFRleHRBcmVhIGJhY2tlbmQgZHJpdmVyIGZvciBpUGhvbmVIYW5sZQoKPWhlYWQxIFBVQkxJQyBJTlRFUkZBQ0UKClRoaXMgbW9kdWxlIGltcGxlbWVudHMgdGhlIHB1YmxpYyBpbnRlcmZhY2Ugb2YgTDxLZXJuZWw6OlN5c3RlbTo6RHluYW1pY0ZpZWxkOjpCYWNrZW5kPi4KUGxlYXNlIGxvb2sgdGhlcmUgZm9yIGEgZGV0YWlsZWQgcmVmZXJlbmNlIG9mIHRoZSBmdW5jdGlvbnMuCgo9b3ZlciA0Cgo9Y3V0CgpzdWIgSVBob25lRmllbGRQYXJhbWV0ZXJCdWlsZCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgdGFrZSBjb25maWcgZnJvbSBmaWVsZCBjb25maWcKICAgIG15ICRGaWVsZENvbmZpZyA9ICRQYXJhbXtEeW5hbWljRmllbGRDb25maWd9LT57Q29uZmlnfTsKICAgIG15ICRGaWVsZE5hbWUgICA9ICdEeW5hbWljRmllbGRfJyAuICRQYXJhbXtEeW5hbWljRmllbGRDb25maWd9LT57TmFtZX07CiAgICBteSAkRmllbGRMYWJlbCAgPSAkUGFyYW17TGFuZ3VhZ2VPYmplY3R9LT5UcmFuc2xhdGUoICRQYXJhbXtEeW5hbWljRmllbGRDb25maWd9LT57TGFiZWx9ICk7CgogICAgbXkgJFZhbHVlID0gJyc7CgogICAgIyBzZXQgdGhlIGZpZWxkIHZhbHVlIG9yIGRlZmF1bHQKICAgIGlmICggJFBhcmFte1VzZURlZmF1bHRWYWx1ZX0gKSB7CiAgICAgICAgJFZhbHVlID0gKCBkZWZpbmVkICRGaWVsZENvbmZpZy0+e0RlZmF1bHRWYWx1ZX0gPyAkRmllbGRDb25maWctPntEZWZhdWx0VmFsdWV9IDogJycgKTsKICAgIH0KICAgICRWYWx1ZSA9ICRQYXJhbXtWYWx1ZX0gaWYgZGVmaW5lZCAkUGFyYW17VmFsdWV9OwoKICAgICMgY3JlYXRlIHRoZSBmaWVsZCBkZWZpbml0aW9uCiAgICBteSAkRGF0YSA9IHsKICAgICAgICBOYW1lICAgICAgPT4gJEZpZWxkTmFtZSwKICAgICAgICBUaXRsZSAgICAgPT4gJEZpZWxkTGFiZWwsCiAgICAgICAgRGF0YXR5cGUgID0+ICdUZXh0JywKICAgICAgICBWaWV3dHlwZSAgPT4gJ1RleHRBcmVhJywKICAgICAgICBNaW4gICAgICAgPT4gMSwKICAgICAgICBNYXggICAgICAgPT4gMjBfMDAwLAogICAgICAgIE1hbmRhdG9yeSA9PiAkUGFyYW17TWFuZGF0b3J5fSwKICAgICAgICBEZWZhdWx0ICAgPT4gJFZhbHVlIHx8ICcnLAogICAgfTsKCiAgICByZXR1cm4gJERhdGE7Cn0KCnN1YiBJUGhvbmVGaWVsZFZhbHVlR2V0IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgJEZpZWxkTmFtZSA9ICdEeW5hbWljRmllbGRfJyAuICRQYXJhbXtEeW5hbWljRmllbGRDb25maWd9LT57TmFtZX07CgogICAgbXkgJFZhbHVlID0gJFBhcmFteyRGaWVsZE5hbWV9OwoKICAgIHJldHVybiAkVmFsdWU7Cn0KCnN1YiBJUGhvbmVGaWVsZFZhbHVlVmFsaWRhdGUgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGdldCB0aGUgZmllbGQgdmFsdWUgZnJvbSB0aGUgcGFyYW0KICAgIG15ICRWYWx1ZSA9ICRQYXJhbXtWYWx1ZX07CgogICAgbXkgJFNlcnZlckVycm9yOwogICAgbXkgJEVycm9yTWVzc2FnZTsKCiAgICAjIHBlcmZvcm0gbmVjZXNzYXJ5IHZhbGlkYXRpb25zCiAgICBpZiAoICRQYXJhbXtNYW5kYXRvcnl9ICYmICRWYWx1ZSBlcSAnJyApIHsKICAgICAgICAkU2VydmVyRXJyb3IgPSAxOwogICAgfQoKICAgICMgY3JlYXRlIHJlc3VsdGluZyBzdHJ1Y3R1cmUKICAgIG15ICRSZXN1bHQgPSB7CiAgICAgICAgU2VydmVyRXJyb3IgID0+ICRTZXJ2ZXJFcnJvciwKICAgICAgICBFcnJvck1lc3NhZ2UgPT4gJEVycm9yTWVzc2FnZSwKICAgIH07CgogICAgcmV0dXJuICRSZXN1bHQ7Cn0KCjE7Cgo9YmFjawoKPWhlYWQxIFRFUk1TIEFORCBDT05ESVRJT05TCgpUaGlzIHNvZnR3YXJlIGlzIHBhcnQgb2YgdGhlIE9UUlMgcHJvamVjdCAoTDxodHRwczovL290cnMub3JnLz4pLgoKVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoR1BMKS4gSWYgeW91CmRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBMPGh0dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvZ3BsLTMuMC50eHQ+LgoKPWN1dAo=
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE4IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQ6OmlQaG9uZUJhY2tlbmQ7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7Cgp1c2UgS2VybmVsOjpTeXN0ZW06OlZhcmlhYmxlQ2hlY2sgcXcoOmFsbCk7Cgo9aGVhZDEgTkFNRQoKS2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZDo6aVBob25lQmFja2VuZAoKPWhlYWQxIFNZTk9QU0lTCgpEeW5hbWljRmllbGRzIGJhY2tlbmQgaW50ZXJmYWNlIGZvciBpUGhvbmUKCj1oZWFkMSBQVUJMSUMgSU5URVJGQUNFCgo9b3ZlciA0Cgo9Y3V0Cgo9aXRlbSBJUGhvbmVGaWVsZFBhcmFtZXRlckJ1aWxkKCkKCmNyZWF0ZXMgdGhlIGZpZWxkIGRlZmluaXRpb24gdG8gYmUgdXNlZCBpbiBpcGhvbmUgZWRpdCBtYXNrcy4KCiAgICBteSAkRmllbGREZWZpbml0aW9uID0gJEJhY2tlbmRPYmplY3QtPklQaG9uZUZpZWxkUGFyYW1ldGVyQnVpbGQoCiAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnICAgPT4gJER5bmFtaWNGaWVsZENvbmZpZywgICAgICAjIENvbXBsZXRlIGNvbmZpZyBvZiB0aGUgRHluYW1pY0ZpZWxkCiAgICAgICAgVmFsdWUgICAgICAgICAgICAgICAgPT4gJ0FueSB2YWx1ZScsICAgICAgICAgICAgICAjIE9wdGlvbmFsCiAgICAgICAgTWFuZGF0b3J5ICAgICAgICAgICAgPT4gMSwgICAgICAgICAgICAgICAgICAgICAgICAjIDAgb3IgMSwKICAgICAgICBVc2VEZWZhdWx0VmFsdWUgICAgICA9PiAxLCAgICAgICAgICAgICAgICAgICAgICAgICMgMCBvciAxLCAxIGRlZmF1bHQKICAgICAgICBPdmVycmlkZVBvc3NpYmxlTm9uZSA9PiAxLCAgICAgICAgICAgICAgICAgICAgICAgICMgT3B0aW9uYWwsIDAgb3IgMS4gSWYgZGVmaW5lZCBvcnZlcnJpZGVzIHRoZSBQb3NzaWJsZSBOb25lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICBzZXR0aW5nIG9mIGFsbCBkeW5hbWljIGZpZWxkcyAod2hlcmUgYXBwbGllcykgd2l0aCB0aGUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgIGRlZmluZWQgdmFsdWUKICAgICAgICBMYW5ndWFnZU9iamVjdCAgICAgICA9PiAkTGFuZ3VhZ2VPYmplY3QsCiAgICApOwoKICAgIFJldHVybnM6CgogICAgICAgIG15ICRGaWVsZERlZmluaXRpb24gPSB7CiAgICAgICAgICAgIE5hbWUgICAgICAgICAgID0+ICdzb21lIG5hbWUnLCAgICAgICMgRmllbGQgbmFtZSAnRHlhbm1pY0ZpZWxkX05hbWVYJwoKICAgICAgICAgICAgVGl0bGUgICAgICAgICAgPT4gJ3NvbWUgdGl0bGUnLCAgICAgIyBGaWVsZCBsYWJlbCAodHJhbnNsYXRlZCBpZiBjYXBhYmxlKQoKICAgICAgICAgICAgRGF0YXR5cGUgICAgICAgPT4gJERhdGF0eXBlLCAgICAgICAgIyBUaGUgdHlwZSBvZiB0aGF0IHRvIGhvbGQsIE9wdGlvbnM6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgRGF0ZSB8fCBUaW1lIHx8IERhdGVUaW1lIHx8IFRleHQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICB8fCBOdW1lcmljCgogICAgICAgICAgICBWaWV3dHlwZSAgICAgICA9PiAkVmlld1R5cGUsICAgICAgICAjIFRoZSBmb3JtYXQgb2YgdGhlIGZpZWxkIGluIHRoZSBpUGhvbmUgQXBwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgQXV0b0NvbXBsZXRpb24gKGlucHV0IGZpZWxkIHdpdGggYW4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgICBhdXRvLWNvbXBsZXRpb24gZmVhdHVyZTsgcG9zc2libGUgdmFsdWVzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgICAgYXJlIGxvYWRlZCBkeW5hbWljYWxseSBmcm9tIHRoZSBzZXJ2ZXIgd2l0aAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgIHRoZSBEeW5hbWljT3B0aW9ucykKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICBQaWNrZXIgKG9wdGlvbiBsaXN0IHdpdGggdmFsdWVzIHdoaWNoIGFyZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgIHByb3ZpZGVkIHdpdGggdGhlIE9wdGlvbnMgb3IgRHluYW1pY09wdGlvbnMKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgICBhdHRyaWJ1dGUpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgRU1haWwgKGlucHV0IGZpZWxkIGZvciBFLU1haWwgYWRkcmVzc2VzIHdpdGggYQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgICAgIHN1aXRhYmxlIGtleWJvYXJkKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgIFVSTCAoaW5wdXQgZmllbGQgZm9yIFVSTHMgd2l0aCBhIHN1aXRhYmxlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgICAga2V5Ym9hcmQpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgUGFzc3dvcmQgKGlucHV0IGZpZWxkIGZvciBwYXNzd29yZHMsIHdoaWNoIGRvZXMKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICAgICBub3QgcmV2ZWFsIHRoZSBlbnRlcmVkIHRleHQpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgSW5wdXQgKHNpbXBsZSBpbnB1dCBmaWVsZCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICBUZXh0QXJlYSAobXVsdGktbGluZSBpbnB1dCBmaWVsZCkKCiAgICAgICAgICAgIE1pbiAgICAgICAgICAgICA9PiAxLCAgICAgICAgICAgICAgICMgT3B0aW9uYWwsIE1pbmltdW0gdmFsdWUgZm9yIG51bWVyaWMgZm9ybSBmaWVsZHMKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICBvciBtaW5pbXVtIGxlbmd0aCBmb3IgdGV4dCBmaWVsZHMuCgogICAgICAgICAgICBNYXggICAgICAgICAgICAgPT4gMiwgICAgICAgICAgICAgICAjIE9wdGlvbmFsLCBNYXhpbXVtIHZhbHVlIGZvciBudW1lcmljIGZvcm0gZmllbGRzIG9yCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgbWF4aW11bSBsZW5ndGggZm9yIHRleHQgZmllbGRzLgoKICAgICAgICAgICAgT3B0aW9ucyAgICAgICAgID0+IHsgICAgICAgICAgICAgICAgIyBPcHRpb25hbCwgTGlzdCBvZiBvcHRpb25zIHdoaWNoIGRlZmluZXMgdGhlIHJhbmdlCiAgICAgICAgICAgICAgICAxID0+ICdWYWx1ZTEnLCAgICAgICAgICAgICAgICAgICMgICAgb2YgdmFsdWVzIGZvciBhbiBlbGVtZW50IG9mIFZpZXd0eXBlIFBpY2tlci4KICAgICAgICAgICAgICAgIDIgPT4gJ1ZhbHVlMicsICAgICAgICAgICAgICAgICAgIyAgICBPcHRpb25zIGlzIG5vdCByZXF1aXJlZCBmb3IgcGlja2VyIGVsZW1lbnRzCiAgICAgICAgICAgIH0sICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgd2l0aCBEYXRhdHlwZSBEYXRlLCBUaW1lIG9yIERhdGVUaW1lLgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgIE1hbmRhdG9yeSBpZiB0aGUgRGF0YXR5cGUgaXMgbm90IERhdGUsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgVGltZSB1bmQgRGF0ZVRpbWUsIHRoZSBWaWV3dHlwZSBpcyBQaWNrZXIgYW5kCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgRHl5bmFtaWNPcHRpb25zIGlzIG5vdCBwcm92aWRlZAoKICAgICAgICAgICAgRHluYW1pY09wdGlvbnMgPT4geyAgICAgICAgICAgICAgICAgIyBPcHRpb25hbCwgU2ltaWxhciB0byBPcHRpb25zIGJ1dCB0aGUgbGlzdCBvZgogICAgICAgICAgICAgICAgT2JqZWN0ICAgICA9PiAnc29tZSBvYmplY3QnLCAgICAjICAgIHZhbHVlcyBpcyBub3QgZml4ZWQsIGluc3RlYWQgYSBmdW5jdGlvbiBpcwogICAgICAgICAgICAgICAgTWV0aG9kICAgICA9PiAnc29tZSBtZXRob2QnLCAgICAjICAgIGNhbGxlZCB0byByZXRyZWl2ZSB0aGUgcG9zc2libGUgb3B0aW9ucy4KICAgICAgICAgICAgICAgIFBhcmFtZXRlcnMgPT4gWyAgICAgICAgICAgICAgICAgIyAgICBEeW5hbWljT3B0aW9ucyBpcyBub3QgcmVxdWlyZWQgZm9yIHBpY2tlcgogICAgICAgICAgICAgICAgICAgIHsgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgIGVsZW1lbnRzIHdpdGggRGF0YXR5cGUgRGF0ZSwgVGltZSBvciBEYXRlVGltZS4KICAgICAgICAgICAgICAgICAgICAgICAgUGFyYW0xID0+ICdzb21lIGRhdGEnLCAgIyAgICBNYW5kYXRvcnkgaWYgdGhlIERhdGF0eXBlIGlzIG5vdCBEYXRlLAogICAgICAgICAgICAgICAgICAgICAgICBQYXJhbTIgPT4gJ3NvbWUgZGF0YScsICAjICAgIFRpbWUgdW5kIERhdGVUaW1lLCB0aGUgVmlld3R5cGUgaXMgUGlja2VyIGFuZAogICAgICAgICAgICAgICAgICAgIH0sICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgIER5eW5hbWljT3B0aW9ucyBpcyBub3QgcHJvdmlkZWQKICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgIH0sCgogICAgICAgICAgICBBdXRvRmlsbEVsZW1lbnRzID0+IFsgICAgICAgICAgICAgICAjIE9wdGlvbmFsLCBVc2VkIHRvIHNldCBhbm90aGVyIGZpZWxkIHZhbHVlCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgRWxlbWVudE5hbWUgPT4gJ2ZpZWxkIG5hbWUnLAogICAgICAgICAgICAgICAgICAgIE9iamVjdCAgICAgID0+ICdzb21lIG9iamVjdCcsCiAgICAgICAgICAgICAgICAgICAgTWV0aG9kICAgICAgPT4gJ3NvbWUgbWV0aG9kJywKICAgICAgICAgICAgICAgICAgICBQYXJhbWV0ZXJzICA9PiBbCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIFBhcmFtMSA9PiAnc29tZSBkYXRhJywKICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgXSwKCiAgICAgICAgICAgIE1hbmRhdG9yeSA9PiAwLCAgICAgICAgICAgICAgICAgICAgICMgMCB8fCAxCgogICAgICAgICAgICBEZWZhdWx0ICAgPT4gJ3NvbWUgdmFsdWUnLAogICAgICAgIH07CiAgICB9OwoKPWN1dAoKc3ViIElQaG9uZUZpZWxkUGFyYW1ldGVyQnVpbGQgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgZm9yIG15ICROZWVkZWQgKHF3KER5bmFtaWNGaWVsZENvbmZpZyBMYW5ndWFnZU9iamVjdCkpIHsKICAgICAgICBpZiAoICEkUGFyYW17JE5lZWRlZH0gKSB7CiAgICAgICAgICAgICRTZWxmLT57TG9nT2JqZWN0fS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJOZWVkICROZWVkZWQhIgogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgICMgY2hlY2sgRHluYW1pY0ZpZWxkQ29uZmlnIChnZW5lcmFsKQogICAgaWYgKCAhSXNIYXNoUmVmV2l0aERhdGEoICRQYXJhbXtEeW5hbWljRmllbGRDb25maWd9ICkgKSB7CiAgICAgICAgJFNlbGYtPntMb2dPYmplY3R9LT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJUaGUgZmllbGQgY29uZmlndXJhdGlvbiBpcyBpbnZhbGlkIiwKICAgICAgICApOwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICAjIGNoZWNrIER5bmFtaWNGaWVsZENvbmZpZyAoaW50ZXJuYWxseSkKICAgIGZvciBteSAkTmVlZGVkIChxdyhJRCBGaWVsZFR5cGUgT2JqZWN0VHlwZSBDb25maWcgTmFtZSkpIHsKICAgICAgICBpZiAoICEkUGFyYW17RHluYW1pY0ZpZWxkQ29uZmlnfS0+eyROZWVkZWR9ICkgewogICAgICAgICAgICAkU2VsZi0+e0xvZ09iamVjdH0tPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCAkTmVlZGVkIGluIER5bmFtaWNGaWVsZENvbmZpZyEiCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgIyBzZXQgdGhlIGR5bmFtaWMgZmllbGQgc3BlY2lmaWMgYmFja2VuZAogICAgbXkgJER5bmFtaWNGaWVsZEJhY2tlbmQgPSAnRHluYW1pY0ZpZWxkJyAuICRQYXJhbXtEeW5hbWljRmllbGRDb25maWd9LT57RmllbGRUeXBlfSAuICdPYmplY3QnOwoKICAgIGlmICggISRTZWxmLT57JER5bmFtaWNGaWVsZEJhY2tlbmR9ICkgewogICAgICAgICRTZWxmLT57TG9nT2JqZWN0fS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAiQmFja2VuZCAkUGFyYW17RHluYW1pY0ZpZWxkQ29uZmlnfS0+e0ZpZWxkVHlwZX0gaXMgaW52YWxpZCEiCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgIyBzZXQgdXNlIGRlZmF1bHQgdmFsdWUgYXMgZGVmYXVsdCBpZiBub3Qgc3BlY2lmaWVkCiAgICBpZiAoICFkZWZpbmVkICRQYXJhbXtVc2VEZWZhdWx0VmFsdWV9ICkgewogICAgICAgICRQYXJhbXtVc2VEZWZhdWx0VmFsdWV9ID0gMTsKICAgIH0KCiAgICAjIHZlcmlmeSBpZiBmdW5jdGlvbiBpcyBhdmFpbGFibGUKICAgIHJldHVybiBpZiAhJFNlbGYtPnskRHluYW1pY0ZpZWxkQmFja2VuZH0tPmNhbignSVBob25lRmllbGRQYXJhbWV0ZXJCdWlsZCcpOwoKICAgICMgY2FsbCBJUGhvbmVGaWVsZFBhcmFtZXRlckJ1aWxkIG9uIHRoZSBzcGVjaWZpYyBiYWNrZW5kCiAgICBteSAkRmllbGREZWZpbml0aW9uID0gJFNlbGYtPnskRHluYW1pY0ZpZWxkQmFja2VuZH0tPklQaG9uZUZpZWxkUGFyYW1ldGVyQnVpbGQoJVBhcmFtKTsKCiAgICByZXR1cm4gJEZpZWxkRGVmaW5pdGlvbjsKCn0KCj1pdGVtIElQaG9uZUZpZWxkVmFsdWVHZXQoKQoKZXh0cmFjdHMgdGhlIHZhbHVlIG9mIGEgZHluYW1pYyBmaWVsZCBmcm9tIHRoZSBwYXJhbSBvYmplY3QuCgogICAgbXkgJFZhbHVlID0gJEJhY2tlbmRPYmplY3QtPklQaG9uZUZpZWxkVmFsdWVHZXQoCiAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnICAgPT4gJER5bmFtaWNGaWVsZENvbmZpZywgICAgIyBjb21wbGV0ZSBjb25maWcgb2YgdGhlIER5bmFtaWNGaWVsZAogICAgICAgIER5bmFtaWNGaWVsZF9OYW1lWCAgID0+ICdEeW5hbWljRmllbGRWYWx1ZScsICAgICMgUmF3IGZpZWxkIHZhbHVlIHdoZXJlLCBOYW1lWCBpcyB0aGUgbmFtZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgICAgIG9mIHRoZSBmaWxlZAogICAgICAgIFVzZXJUaW1lWm9uZSAgICAgICAgID0+IC02LAogICAgKTsKCiAgICBSZXR1cm5zICRWYWx1ZTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBkZXBlbmRpbmcgb24gZWFjaCBmaWVsZCB0eXBlIGUuZy4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgJFZhbHVlID0gJ2EgdGV4dCc7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIyAgICRWYWx1ZSA9ICcxOTc3LTEyLTEyIDEyOjAwOjAwJzsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAjICAgJFZhbHVlID0gMTsKCj1jdXQKCnN1YiBJUGhvbmVGaWVsZFZhbHVlR2V0IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGZvciBteSAkTmVlZGVkIChxdyhEeW5hbWljRmllbGRDb25maWcpKSB7CiAgICAgICAgaWYgKCAhJFBhcmFteyROZWVkZWR9ICkgewogICAgICAgICAgICAkU2VsZi0+e0xvZ09iamVjdH0tPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiTmVlZCAkTmVlZGVkISIKICAgICAgICAgICAgKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICAjIGRlZmluZSB0cmFuc2Zvcm0gZGF0ZXMgcGFyYW1ldGVyCiAgICBpZiAoICFkZWZpbmVkICRQYXJhbXtUcmFuc2Zvcm1EYXRlc30gKSB7CiAgICAgICAgJFBhcmFte1RyYW5zZm9ybURhdGVzfSA9IDE7CiAgICB9CgogICAgIyBjaGVjayBEeW5hbWljRmllbGRDb25maWcgKGdlbmVyYWwpCiAgICBpZiAoICFJc0hhc2hSZWZXaXRoRGF0YSggJFBhcmFte0R5bmFtaWNGaWVsZENvbmZpZ30gKSApIHsKICAgICAgICAkU2VsZi0+e0xvZ09iamVjdH0tPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gIlRoZSBmaWVsZCBjb25maWd1cmF0aW9uIGlzIGludmFsaWQiLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgICMgY2hlY2sgRHluYW1pY0ZpZWxkQ29uZmlnIChpbnRlcm5hbGx5KQogICAgZm9yIG15ICROZWVkZWQgKHF3KElEIEZpZWxkVHlwZSBPYmplY3RUeXBlIE5hbWUpKSB7CiAgICAgICAgaWYgKCAhJFBhcmFte0R5bmFtaWNGaWVsZENvbmZpZ30tPnskTmVlZGVkfSApIHsKICAgICAgICAgICAgJFNlbGYtPntMb2dPYmplY3R9LT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgJE5lZWRlZCBpbiBEeW5hbWljRmllbGRDb25maWchIgogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgICMgc2V0IHRoZSBkeW5hbWljIGZpZWxkIHNwZWNpZmljIGJhY2tlbmQKICAgIG15ICREeW5hbWljRmllbGRCYWNrZW5kID0gJ0R5bmFtaWNGaWVsZCcgLiAkUGFyYW17RHluYW1pY0ZpZWxkQ29uZmlnfS0+e0ZpZWxkVHlwZX0gLiAnT2JqZWN0JzsKCiAgICBpZiAoICEkU2VsZi0+eyREeW5hbWljRmllbGRCYWNrZW5kfSApIHsKICAgICAgICAkU2VsZi0+e0xvZ09iamVjdH0tPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gIkJhY2tlbmQgJFBhcmFte0R5bmFtaWNGaWVsZENvbmZpZ30tPntGaWVsZFR5cGV9IGlzIGludmFsaWQhIgogICAgICAgICk7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgICMgdmVyaWZ5IGlmIGZ1bmN0aW9uIGlzIGF2YWlsYWJsZQogICAgcmV0dXJuIGlmICEkU2VsZi0+eyREeW5hbWljRmllbGRCYWNrZW5kfS0+Y2FuKCdJUGhvbmVGaWVsZFZhbHVlR2V0Jyk7CgogICAgIyByZXR1cm4gdmFsdWUgZnJvbSB0aGUgc3BlY2lmaWMgYmFja2VuZAogICAgcmV0dXJuICRTZWxmLT57JER5bmFtaWNGaWVsZEJhY2tlbmR9LT5JUGhvbmVGaWVsZFZhbHVlR2V0KCVQYXJhbSk7Cn0KCj1pdGVtIElQaG9uZUZpZWxkVmFsdWVWYWxpZGF0ZSgpCgp2YWxpZGF0ZSB0aGUgY3VycmVudCB2YWx1ZSBmb3IgdGhlIGR5bmFtaWMgZmllbGQKCiAgICBteSAkUmVzdWx0ID0gJEJhY2tlbmRPYmplY3QtPklQaG9uZUZpZWxkVmFsdWVWYWxpZGF0ZSgKICAgICAgICBEeW5hbWljRmllbGRDb25maWcgICA9PiAkRHluYW1pY0ZpZWxkQ29uZmlnLCAgICAgICMgY29tcGxldGUgY29uZmlnIG9mIHRoZSBEeW5hbWljRmllbGQKICAgICAgICBWYWx1ZSAgICAgICAgICAgICAgICA9PiAkVmFsdWUsICAgICAgICAgICAgICAgICAgICMgVGhlIGN1cnJlbnQgZHluYW1pYyBmaWVsZCB2YWx1ZQogICAgICAgIE1hbmRhdG9yeSAgICAgICAgICAgID0+IDEsICAgICAgICAgICAgICAgICAgICAgICAgIyAwIG9yIDEsCiAgICApOwoKICAgIFJldHVybnMKCiAgICAkUmVzdWx0ID0gewogICAgICAgIFNlcnZlckVycm9yICAgICAgICA9PiAxLCAgICAgICAgICAgICAgICAgICAgICAgICAgIyAwIG9yIDEsCiAgICAgICAgRXJyb3JNZXNzYWdlICAgICAgID0+ICRFcnJvck1lc3NhZ2UsICAgICAgICAgICAgICAjIE9wdGlvbmFsIG9yIGEgZGVmYXVsdCB3aWxsIGJlIHVzZWQgaW4gZXJyb3IgY2FzZQogICAgfQoKPWN1dAoKc3ViIElQaG9uZUZpZWxkVmFsdWVWYWxpZGF0ZSB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgY2hlY2sgbmVlZGVkIHN0dWZmCiAgICBpZiAoICEkUGFyYW17RHluYW1pY0ZpZWxkQ29uZmlnfSApIHsKICAgICAgICAkU2VsZi0+e0xvZ09iamVjdH0tPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgRHluYW1pY0ZpZWxkQ29uZmlnISIKICAgICAgICApOwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICAjIGNoZWNrIER5bmFtaWNGaWVsZENvbmZpZyAoZ2VuZXJhbCkKICAgIGlmICggIUlzSGFzaFJlZldpdGhEYXRhKCAkUGFyYW17RHluYW1pY0ZpZWxkQ29uZmlnfSApICkgewogICAgICAgICRTZWxmLT57TG9nT2JqZWN0fS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAiVGhlIGZpZWxkIGNvbmZpZ3VyYXRpb24gaXMgaW52YWxpZCIsCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgIyBjaGVjayBEeW5hbWljRmllbGRDb25maWcgKGludGVybmFsbHkpCiAgICBmb3IgbXkgJE5lZWRlZCAocXcoSUQgRmllbGRUeXBlIE9iamVjdFR5cGUgQ29uZmlnIE5hbWUpKSB7CiAgICAgICAgaWYgKCAhJFBhcmFte0R5bmFtaWNGaWVsZENvbmZpZ30tPnskTmVlZGVkfSApIHsKICAgICAgICAgICAgJFNlbGYtPntMb2dPYmplY3R9LT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5lZWQgJE5lZWRlZCBpbiBEeW5hbWljRmllbGRDb25maWchIgogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgICMgc2V0IHRoZSBkeW5hbWljIGZpZWxkIHNwZWNpZmljIGJhY2tlbmQKICAgIG15ICREeW5hbWljRmllbGRCYWNrZW5kID0gJ0R5bmFtaWNGaWVsZCcgLiAkUGFyYW17RHluYW1pY0ZpZWxkQ29uZmlnfS0+e0ZpZWxkVHlwZX0gLiAnT2JqZWN0JzsKCiAgICBpZiAoICEkU2VsZi0+eyREeW5hbWljRmllbGRCYWNrZW5kfSApIHsKICAgICAgICAkU2VsZi0+e0xvZ09iamVjdH0tPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gIkJhY2tlbmQgJFBhcmFte0R5bmFtaWNGaWVsZENvbmZpZ30tPntGaWVsZFR5cGV9IGlzIGludmFsaWQhIgogICAgICAgICk7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgICMgdmVyaWZ5IGlmIGZ1bmN0aW9uIGlzIGF2YWlsYWJsZQogICAgcmV0dXJuIGlmICEkU2VsZi0+eyREeW5hbWljRmllbGRCYWNrZW5kfS0+Y2FuKCdJUGhvbmVGaWVsZFZhbHVlVmFsaWRhdGUnKTsKCiAgICAjIHJldHVybiB2YWxpZGF0aW9uIHN0cnVjdHVyZSBmcm9tIHRoZSBzcGVjaWZpYyBiYWNrZW5kCiAgICByZXR1cm4gJFNlbGYtPnskRHluYW1pY0ZpZWxkQmFja2VuZH0tPklQaG9uZUZpZWxkVmFsdWVWYWxpZGF0ZSglUGFyYW0pOwoKfQoKMTsKCj1iYWNrCgo9aGVhZDEgVEVSTVMgQU5EIENPTkRJVElPTlMKClRoaXMgc29mdHdhcmUgaXMgcGFydCBvZiB0aGUgT1RSUyBwcm9qZWN0IChMPGh0dHBzOi8vb3Rycy5vcmcvPikuCgpUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQp0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKZGlkIG5vdCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIEw8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dD4uCgo9Y3V0Cg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE4IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6U3lzdGVtOjppUGhvbmVIYW5kbGU6Ok92ZXJ2aWV3OwoKdXNlIHN0cmljdDsKdXNlIHdhcm5pbmdzOwoKdXNlIEtlcm5lbDo6U3lzdGVtOjpWYXJpYWJsZUNoZWNrIHF3KDphbGwpOwoKb3VyIEBPYmplY3REZXBlbmRlbmNpZXMgPSAoCiAgICAnS2VybmVsOjpDb25maWcnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpMb2NrJywKICAgICdLZXJuZWw6OlN5c3RlbTo6TG9nJywKICAgICdLZXJuZWw6OlN5c3RlbTo6UXVldWUnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpTdGF0ZScsCiAgICAnS2VybmVsOjpTeXN0ZW06OlRpY2tldCcsCiAgICAnS2VybmVsOjpTeXN0ZW06OlRpbWUnLAopOwoKPWhlYWQxIE5BTUUKCktlcm5lbDo6U3lzdGVtOjppUGhvbmVIYW5kbGU6Ok92ZXJ2aWV3IC0gc3ViIG1vZHVsZSBvZiBLZXJuZWw6OlN5c3RlbTo6aVBob25lSGFuZGxlCgo9aGVhZDEgU1lOT1BTSVMKCk92ZXJ2aWV3IGNvbW1vbiBmdW5jdGlvbnMuCgo9aGVhZDEgUFVCTElDIElOVEVSRkFDRQoKPW92ZXIgNAoKPWN1dAoKPWl0ZW0gRXNjYWxhdGlvblZpZXcoKQoKR2V0IHRoZSBudW1iZXIgb2YgdGlja2V0cyBvbiBlc2NhbGF0aW9uIHN0YXR1cyBieSBzdGF0ZSB0eXBlIG9yIGxhc3QgY3VzdG9tZXIgYXJ0aWNsZSBpbmZvcm1hdGlvbiBmcm9tCmVhY2ggdGlja2V0IGluIGVzY2FsYXRpb24gc3RhdHVzIHdpdGhpbiBhIGZpbHRlciwgaWYgdGhlICJGaWx0ZXIiIGFyZ3VtZW50IGlzIHNwZWNpZmllZC4KCiAgICBteSBAUmVzdWx0ID0gJGlQaG9uZU9iamVjdC0+RXNjYWxhdGlvblZpZXcoCiAgICAgICAgVXNlcklEICA9PiAxLAoKICAgICAgICAjIE9yZGVyQnkgYW5kIFNvcnRCeSAob3B0aW9uYWwpCiAgICAgICAgT3JkZXJCeSA9PiAnRG93bicsICAjIERvd258VXAKICAgICAgICBTb3J0QnkgID0+ICdBZ2UnLCAgICMgT3duZXJ8UmVzcG9uc2libGV8Q3VzdG9tZXJJRHxTdGF0ZXxUaWNrZXROdW1iZXJ8UXVldWV8UHJpb3JpdHl8QWdlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIFR5cGV8TG9ja3xUaXRsZXxTZXJ2aWNlfFNMQXxQZW5kaW5nVGltZXxFc2NhbGF0aW9uVGltZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBFc2NhbGF0aW9uVXBkYXRlVGltZXxFc2NhbGF0aW9uUmVzcG9uc2VUaW1lfEVzY2FsYXRpb25Tb2x1dGlvblRpbWUKICAgICk7CgogICAgIyBhIHJlc3VsdCBjb3VsZCBiZQoKICAgIEBSZXN1bHQgPSAoCiAgICAgICAgewogICAgICAgICAgICBTdGF0ZVR5cGUgICAgICAgICAgICAgICAgICAgICAgPT4gIlRvZGF5IiwKICAgICAgICAgICAgTnVtYmVyT2ZUaWNrZXRzICAgICAgICAgICAgICAgID0+IDIsCiAgICAgICAgICAgIE51bWJlck9mVGlja2V0c1dpdGhOZXdNZXNzYWdlcyA9PiAwLAogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgICBTdGF0ZVR5cGUgICAgICAgICAgICAgICAgICAgICAgPT4gIlRvbW9ycm93IiwKICAgICAgICAgICAgTnVtYmVyT2ZUaWNrZXRzICAgICAgICAgICAgICAgID0+IDIsCiAgICAgICAgICAgIE51bWJlck9mVGlja2V0c1dpdGhOZXdNZXNzYWdlcyA9PiAwLAogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgICBTdGF0ZVR5cGUgICAgICAgICAgICAgICAgICAgICAgPT4gIk5leHRXZWVrIiwKICAgICAgICAgICAgTnVtYmVyT2ZUaWNrZXRzICAgICAgICAgICAgICAgID0+IDIsCiAgICAgICAgICAgIE51bWJlck9mVGlja2V0c1dpdGhOZXdNZXNzYWdlcyA9PiAwCiAgICAgICAgfSwKICAgICk7CgogICAgbXkgQFJlc3VsdCA9ICRpUGhvbmVPYmplY3QtPkVzY2FsYXRpb25WaWV3KAogICAgICAgIFVzZXJJRCAgPT4gMSwKICAgICAgICBGaWx0ZXIgID0+ICJUb2RheSIsCgogICAgICAgICNMaW1pdCAob3B0aW9uYWwpIHNldCB0byAxMDAgYnkgZGVmYXVsdCwgaWYgbm90IHNwZWNpZmllZAogICAgICAgIExpbWl0ICAgPT4gNTAsCgogICAgICAgICMgT3JkZXJCeSBhbmQgU29ydEJ5IChvcHRpb25hbCkKICAgICAgICBPcmRlckJ5ID0+ICdEb3duJywgICMgRG93bnxVcAogICAgICAgIFNvcnRCeSAgPT4gJ0FnZScsICAgIyBPd25lcnxSZXNwb25zaWJsZXxDdXN0b21lcklEfFN0YXRlfFRpY2tldE51bWJlcnxRdWV1ZXxQcmlvcml0eXxBZ2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgVHlwZXxMb2NrfFRpdGxlfFNlcnZpY2V8U0xBfFBlbmRpbmdUaW1lfEVzY2FsYXRpb25UaW1lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIEVzY2FsYXRpb25VcGRhdGVUaW1lfEVzY2FsYXRpb25SZXNwb25zZVRpbWV8RXNjYWxhdGlvblNvbHV0aW9uVGltZQogICAgKTsKCiAgICAjYSByZXN1bHQgY291bGQgYmUKCiAgICBAUmVzdWx0ID0gKAogICAgICAgIHsKICAgICAgICAgICAgQWdlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gMTU5NiwKICAgICAgICAgICAgQXJ0aWNsZUlEICAgICAgICAgICAgICAgICAgICAgICAgPT4gOTIzLAogICAgICAgICAgICBBcnRpY2xlVHlwZSAgICAgICAgICAgICAgICAgICAgICA9PiAicGhvbmUiLAogICAgICAgICAgICBCb2R5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAiVGVzdGluZyBmb3IgZXNjYWxhdGlvbiIsCiAgICAgICAgICAgIENoYXJzZXQgICAgICAgICAgICAgICAgICAgICAgICAgID0+ICJ1dGYtOCIsCiAgICAgICAgICAgIENvbnRlbnRDaGFyc2V0ICAgICAgICAgICAgICAgICAgID0+ICJ1dGYtOCIsCiAgICAgICAgICAgIENvbnRlbnRUeXBlICAgICAgICAgICAgICAgICAgICAgID0+ICJ0ZXh0L3BsYWluOyIsCiAgICAgICAgICAgIGNoYXJzZXQgICAgICAgICAgICAgICAgICAgICAgICAgID0+ICJ1dGYtOCIsCiAgICAgICAgICAgIENyZWF0ZWQgICAgICAgICAgICAgICAgICAgICAgICAgID0+ICIyMDEwLTA2LTIzIDExOjQ2OjE1IiwKICAgICAgICAgICAgQ3JlYXRlZEJ5ICAgICAgICAgICAgICAgICAgICAgICAgPT4gMSwKICAgICAgICAgICAgRmlyc3RSZXNwb25zZVRpbWUgICAgICAgICAgICAgICAgPT4gLTEyOTYsCiAgICAgICAgICAgIEZpcnN0UmVzcG9uc2VUaW1lRGVzdGluYXRpb25EYXRlID0+ICIyMDEwLTA2LTIzIDExOjUxOjE0IiwKICAgICAgICAgICAgRmlyc3RSZXNwb25zZVRpbWVEZXN0aW5hdGlvblRpbWUgPT4gMTI3NzMxMTg3NCwKICAgICAgICAgICAgRmlyc3RSZXNwb25zZVRpbWVFc2NhbGF0aW9uICAgICAgPT4gMSwKICAgICAgICAgICAgRmlyc3RSZXNwb25zZVRpbWVXb3JraW5nVGltZSAgICAgPT4gLTEyNjAsCiAgICAgICAgICAgIEZyb20gICAgICAgICAgICAgICAgICAgICAgICAgICAgID0+ICJjdXN0b21lckBvdHJzLm9yZyIsCiAgICAgICAgICAgIEluY29taW5nVGltZSAgICAgICAgICAgICAgICAgICAgID0+IDEyNzczMTE1NzUsCiAgICAgICAgICAgIExvY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0+ICJ1bmxvY2siLAogICAgICAgICAgICBNaW1lVHlwZSAgICAgICAgICAgICAgICAgICAgICAgICA9PiAidGV4dC9wbGFpbiIsCiAgICAgICAgICAgIE93bmVyICAgICAgICAgICAgICAgICAgICAgICAgICAgID0+ICJBZ2VudDEiLAogICAgICAgICAgICBQcmlvcml0eSAgICAgICAgICAgICAgICAgICAgICAgICA9PiAiMyBub3JtYWwiLAogICAgICAgICAgICBQcmlvcml0eUNvbG9yICAgICAgICAgICAgICAgICAgICA9PiAiI2NkY2RjZCIsCiAgICAgICAgICAgIFF1ZXVlICAgICAgICAgICAgICAgICAgICAgICAgICAgID0+ICJKdW5rIiwKICAgICAgICAgICAgUmVzcG9uc2libGUgICAgICAgICAgICAgICAgICAgICAgPT4gIkFnZW50MSIsCiAgICAgICAgICAgIFNlbmRlclR5cGUgICAgICAgICAgICAgICAgICAgICAgID0+ICJjdXN0b21lciIsCiAgICAgICAgICAgIFNvbHV0aW9uVGltZSAgICAgICAgICAgICAgICAgICAgID0+IC0xMjk2LAogICAgICAgICAgICBTb2x1dGlvblRpbWVEZXN0aW5hdGlvbkRhdGUgICAgICA9PiAiMjAxMC0wNi0yMyAxMTo1MToxNCIsCiAgICAgICAgICAgIFNvbHV0aW9uVGltZURlc3RpbmF0aW9uVGltZSAgICAgID0+IDEyNzczMTE4NzQsCiAgICAgICAgICAgIFNvbHV0aW9uVGltZUVzY2FsYXRpb24gICAgICAgICAgID0+IDEsCiAgICAgICAgICAgIFNvbHV0aW9uVGltZVdvcmtpbmdUaW1lICAgICAgICAgID0+IC0xMjYwLAogICAgICAgICAgICBTdGF0ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAib3BlbiIsCiAgICAgICAgICAgIFN1YmplY3QgICAgICAgICAgICAgICAgICAgICAgICAgID0+ICJFc2NhbGF0aW9uIFRlc3QiLAogICAgICAgICAgICBUaWNrZXRJRCAgICAgICAgICAgICAgICAgICAgICAgICA9PiAxNzYsCiAgICAgICAgICAgIFRpY2tldE51bWJlciAgICAgICAgICAgICAgICAgICAgID0+IDIwMTAwNjIzMTAwMDAwMTUsCiAgICAgICAgICAgIFRpdGxlICAgICAgICAgICAgICAgICAgICAgICAgICAgID0+ICJFc2NhbGF0aW9uIFRlc3QiLAogICAgICAgICAgICBUbyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAiSnVuayIsCiAgICAgICAgICAgIFR5cGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0+ICJJbmNpZGVudCIsCiAgICAgICAgICAgIFVudGlsVGltZSAgICAgICAgICAgICAgICAgICAgICAgID0+IDAsCiAgICAgICAgICAgIFVwZGF0ZVRpbWUgICAgICAgICAgICAgICAgICAgICAgID0+IC0xMjk1LAogICAgICAgICAgICBVcGRhdGVUaW1lRGVzdGluYXRpb25EYXRlICAgICAgICA9PiAiMjAxMC0wNi0yMyAxMTo1MToxNSIsCiAgICAgICAgICAgIFVwZGF0ZVRpbWVEZXN0aW5hdGlvblRpbWUgICAgICAgID0+IDEyNzczMTE4NzUsCiAgICAgICAgICAgIFVwZGF0ZVRpbWVFc2NhbGF0aW9uICAgICAgICAgICAgID0+IDEsCiAgICAgICAgICAgIFVwZGF0ZVRpbWVXb3JraW5nVGltZSAgICAgICAgICAgID0+IC0xMjYwLAogICAgICAgICAgICBTZWVuICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAxLAogICAgICAgIH0sCiAgICApOwoKPWN1dAoKc3ViIEVzY2FsYXRpb25WaWV3IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBnZXQgdGltZSBvYmplY3QKICAgIG15ICRUaW1lT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlRpbWUnKTsKCiAgICBteSAoICRTZWMsICRNaW4sICRIb3VyLCAkRGF5LCAkTW9udGgsICRZZWFyICkgPSAkVGltZU9iamVjdC0+U3lzdGVtVGltZTJEYXRlKAogICAgICAgIFN5c3RlbVRpbWUgPT4gJFRpbWVPYmplY3QtPlN5c3RlbVRpbWUoKSArIDYwICogNjAgKiAyNCAqIDcsCiAgICApOwogICAgbXkgJFRpbWVTdGFtcE5leHRXZWVrID0gIiRZZWFyLSRNb250aC0kRGF5IDIzOjU5OjU5IjsKCiAgICAoICRTZWMsICRNaW4sICRIb3VyLCAkRGF5LCAkTW9udGgsICRZZWFyICkgPSAkVGltZU9iamVjdC0+U3lzdGVtVGltZTJEYXRlKAogICAgICAgIFN5c3RlbVRpbWUgPT4gJFRpbWVPYmplY3QtPlN5c3RlbVRpbWUoKSArIDYwICogNjAgKiAyNCwKICAgICk7CiAgICBteSAkVGltZVN0YW1wVG9tb3Jyb3cgPSAiJFllYXItJE1vbnRoLSREYXkgMjM6NTk6NTkiOwoKICAgICggJFNlYywgJE1pbiwgJEhvdXIsICREYXksICRNb250aCwgJFllYXIgKSA9ICRUaW1lT2JqZWN0LT5TeXN0ZW1UaW1lMkRhdGUoCiAgICAgICAgU3lzdGVtVGltZSA9PiAkVGltZU9iamVjdC0+U3lzdGVtVGltZSgpLAogICAgKTsKICAgIG15ICRUaW1lU3RhbXBUb2RheSA9ICIkWWVhci0kTW9udGgtJERheSAyMzo1OTo1OSI7CgogICAgIyBkZWZpbmUgZmlsdGVyCiAgICBteSAlRmlsdGVycyA9ICgKICAgICAgICBUb2RheSA9PiB7CiAgICAgICAgICAgIE5hbWUgICA9PiAnVG9kYXknLAogICAgICAgICAgICBQcmlvICAgPT4gMTAwMCwKICAgICAgICAgICAgU2VhcmNoID0+IHsKICAgICAgICAgICAgICAgIFRpY2tldEVzY2FsYXRpb25UaW1lT2xkZXJEYXRlID0+ICRUaW1lU3RhbXBUb2RheSwKICAgICAgICAgICAgICAgIE9yZGVyQnkgICAgICAgICAgICAgICAgICAgICAgID0+ICRQYXJhbXtPcmRlckJ5fSwKICAgICAgICAgICAgICAgIFNvcnRCeSAgICAgICAgICAgICAgICAgICAgICAgID0+ICRQYXJhbXtTb3J0Qnl9LAogICAgICAgICAgICAgICAgVXNlcklEICAgICAgICAgICAgICAgICAgICAgICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgICAgICBQZXJtaXNzaW9uICAgICAgICAgICAgICAgICAgICA9PiAncm8nLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgVG9tb3Jyb3cgPT4gewogICAgICAgICAgICBOYW1lICAgPT4gJ1RvbW9ycm93JywKICAgICAgICAgICAgUHJpbyAgID0+IDIwMDAsCiAgICAgICAgICAgIFNlYXJjaCA9PiB7CiAgICAgICAgICAgICAgICBUaWNrZXRFc2NhbGF0aW9uVGltZU9sZGVyRGF0ZSA9PiAkVGltZVN0YW1wVG9tb3Jyb3csCiAgICAgICAgICAgICAgICBPcmRlckJ5ICAgICAgICAgICAgICAgICAgICAgICA9PiAkUGFyYW17T3JkZXJCeX0sCiAgICAgICAgICAgICAgICBTb3J0QnkgICAgICAgICAgICAgICAgICAgICAgICA9PiAkUGFyYW17U29ydEJ5fSwKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgICAgICAgICAgICAgICAgICAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICAgICAgUGVybWlzc2lvbiAgICAgICAgICAgICAgICAgICAgPT4gJ3JvJywKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIE5leHRXZWVrID0+IHsKICAgICAgICAgICAgTmFtZSAgID0+ICdOZXh0IFdlZWsnLAogICAgICAgICAgICBQcmlvICAgPT4gMzAwMCwKICAgICAgICAgICAgU2VhcmNoID0+IHsKICAgICAgICAgICAgICAgIFRpY2tldEVzY2FsYXRpb25UaW1lT2xkZXJEYXRlID0+ICRUaW1lU3RhbXBOZXh0V2VlaywKICAgICAgICAgICAgICAgIE9yZGVyQnkgICAgICAgICAgICAgICAgICAgICAgID0+ICRQYXJhbXtPcmRlckJ5fSwKICAgICAgICAgICAgICAgIFNvcnRCeSAgICAgICAgICAgICAgICAgICAgICAgID0+ICRQYXJhbXtTb3J0Qnl9LAogICAgICAgICAgICAgICAgVXNlcklEICAgICAgICAgICAgICAgICAgICAgICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgICAgICBQZXJtaXNzaW9uICAgICAgICAgICAgICAgICAgICA9PiAncm8nLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICApOwoKICAgICMgZ2V0IHRpY2tldCBvYmplY3QKICAgIG15ICRUaWNrZXRPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VGlja2V0Jyk7CgogICAgIyBkbyBzaG93biB0aWNrZXRzIGxvb2t1cAogICAgbXkgJExpbWl0ID0gJFBhcmFte0xpbWl0fSB8fCAxMDA7CiAgICBpZiAoICRQYXJhbXtGaWx0ZXJ9ICkgewogICAgICAgIG15IEBWaWV3YWJsZVRpY2tldHMgPSAkVGlja2V0T2JqZWN0LT5UaWNrZXRTZWFyY2goCiAgICAgICAgICAgICV7ICRGaWx0ZXJzeyAkUGFyYW17RmlsdGVyfSB9LT57U2VhcmNofSB9LAogICAgICAgICAgICBMaW1pdCAgPT4gJExpbWl0LAogICAgICAgICAgICBSZXN1bHQgPT4gJ0FSUkFZJywKICAgICAgICApOwogICAgICAgIG15IEBMaXN0OwogICAgICAgIFRJQ0tFVElEOgogICAgICAgIGZvciBteSAkVGlja2V0SUQgKEBWaWV3YWJsZVRpY2tldHMpIHsKICAgICAgICAgICAgbmV4dCBUSUNLRVRJRCBpZiAhJFRpY2tldElEOwogICAgICAgICAgICBteSAlQXJ0aWNsZSA9ICRTZWxmLT5UaWNrZXRMaXN0KAogICAgICAgICAgICAgICAgVGlja2V0SUQgPT4gJFRpY2tldElELAogICAgICAgICAgICAgICAgVXNlcklEICAgPT4gJFBhcmFte1VzZXJJRH0KICAgICAgICAgICAgKTsKICAgICAgICAgICAgbmV4dCBUSUNLRVRJRCBpZiAhJUFydGljbGU7CiAgICAgICAgICAgIHB1c2ggQExpc3QsIFwlQXJ0aWNsZTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIEBMaXN0OwogICAgfQoKICAgICMgZG8gTmF2QmFyIGxvb2t1cAogICAgbXkgQFN0YXRlczsKICAgIGZvciBteSAkRmlsdGVyICggc29ydCBrZXlzICVGaWx0ZXJzICkgewogICAgICAgIG15ICRDb3VudCA9ICRUaWNrZXRPYmplY3QtPlRpY2tldFNlYXJjaCgKICAgICAgICAgICAgJXsgJEZpbHRlcnN7JEZpbHRlcn0tPntTZWFyY2h9IH0sCiAgICAgICAgICAgIFJlc3VsdCA9PiAnQ09VTlQnLAogICAgICAgICk7CiAgICAgICAgbXkgJENvdW50TmV3ID0gJFRpY2tldE9iamVjdC0+VGlja2V0U2VhcmNoKAogICAgICAgICAgICAleyAkRmlsdGVyc3skRmlsdGVyfS0+e1NlYXJjaH0gfSwKICAgICAgICAgICAgUmVzdWx0ICAgICA9PiAnQ09VTlQnLAogICAgICAgICAgICBUaWNrZXRGbGFnID0+IHsKICAgICAgICAgICAgICAgIFNlZW4gPT4gMSwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgVGlja2V0RmxhZ1VzZXJJRCA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICApOwogICAgICAgICRDb3VudE5ldyA9ICRDb3VudCAtICRDb3VudE5ldzsKCiAgICAgICAgcHVzaCBAU3RhdGVzLCB7CiAgICAgICAgICAgIFN0YXRlVHlwZSAgICAgICAgICAgICAgICAgICAgICA9PiAkRmlsdGVyLAogICAgICAgICAgICBGaWx0ZXJOYW1lICAgICAgICAgICAgICAgICAgICAgPT4gJEZpbHRlcnN7JEZpbHRlcn0tPntOYW1lfSwKICAgICAgICAgICAgTnVtYmVyT2ZUaWNrZXRzICAgICAgICAgICAgICAgID0+ICRDb3VudCwKICAgICAgICAgICAgTnVtYmVyT2ZUaWNrZXRzV2l0aE5ld01lc3NhZ2VzID0+ICRDb3VudE5ldywKICAgICAgICB9OwogICAgfQogICAgcmV0dXJuIEBTdGF0ZXM7Cn0KCj1pdGVtIFN0YXR1c1ZpZXcoKQoKR2V0IHRoZSBudW1iZXIgb2YgdGlja2V0cyBieSBzdGF0dXMgKG9wZW4gb3IgY2xvc2VkKSBvciBsYXN0IGN1c3RvbWVyIGFydGljbGUgaW5mb3JtYXRpb24gZnJvbSBlYWNoCnRpY2tldCBpbiBlYWNoIHN0YXR1cyB3aXRoaW4gYW4gc3BlY2lmaWVkIGZpbHRlciwgaWYgdGhlICJGaWx0ZXIiIGFyZ3VtZW50IGlzIHNwZWNpZmllZC4KCiAgICBteSBAUmVzdWx0ID0gJGlQaG9uZU9iamVjdC0+U3RhdHVzVmlldygKICAgICAgICBVc2VySUQgID0+IDEsCgogICAgICAgICMgT3JkZXJCeSBhbmQgU29ydEJ5IChvcHRpb25hbCkKICAgICAgICBPcmRlckJ5ID0+ICdEb3duJywgICMgRG93bnxVcAogICAgICAgIFNvcnRCeSAgPT4gJ0FnZScsICAgIyBPd25lcnxSZXNwb25zaWJsZXxDdXN0b21lcklEfFN0YXRlfFRpY2tldE51bWJlcnxRdWV1ZXxQcmlvcml0eXxBZ2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgVHlwZXxMb2NrfFRpdGxlfFNlcnZpY2V8U0xBfFBlbmRpbmdUaW1lfEVzY2FsYXRpb25UaW1lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIEVzY2FsYXRpb25VcGRhdGVUaW1lfEVzY2FsYXRpb25SZXNwb25zZVRpbWV8RXNjYWxhdGlvblNvbHV0aW9uVGltZQogICAgKTsKCiAgICAjYSByZXN1bHQgY291bGQgYmUKCiAgICBAUmVzdWx0ID0gKAogICAgICAgIHsKICAgICAgICAgICAgU3RhdGVUeXBlICAgICAgICAgICAgICAgICAgICAgID0+ICJPcGVuIiwKICAgICAgICAgICAgTnVtYmVyT2ZUaWNrZXRzICAgICAgICAgICAgICAgID0+IDIsCiAgICAgICAgICAgIE51bWJlck9mVGlja2V0c1dpdGhOZXdNZXNzYWdlcyA9PiAwLAogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgICBTdGF0ZVR5cGUgICAgICAgICAgICAgICAgICAgICAgPT4gIkNsb3NlZCIsCiAgICAgICAgICAgIE51bWJlck9mVGlja2V0cyAgICAgICAgICAgICAgICA9PiAxLAogICAgICAgICAgICBOdW1iZXJPZlRpY2tldHNXaXRoTmV3TWVzc2FnZXMgPT4gMCwKICAgICAgICB9LAogICAgKTsKCiAgICBteSBAUmVzdWx0ID0gJGlQaG9uZU9iamVjdC0+U3RhdHVzVmlldygKICAgICAgICBVc2VySUQgID0+IDEsCiAgICAgICAgRmlsdGVyICA9PiAiT3BlbiIsCgogICAgICAgICNMaW1pdCAob3B0aW9uYWwpIHNldCB0byAxMDAgYnkgZGVmYXVsdCwgaWYgbm90IHNwZWNpZmllZAogICAgICAgIExpbWl0ICAgPT4gNTAsCgogICAgICAgICMgT3JkZXJCeSBhbmQgU29ydEJ5IChvcHRpb25hbCkKICAgICAgICBPcmRlckJ5ID0+ICdEb3duJywgICMgRG93bnxVcAogICAgICAgIFNvcnRCeSAgPT4gJ0FnZScsICAgIyBPd25lcnxSZXNwb25zaWJsZXxDdXN0b21lcklEfFN0YXRlfFRpY2tldE51bWJlcnxRdWV1ZXxQcmlvcml0eXxBZ2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgVHlwZXxMb2NrfFRpdGxlfFNlcnZpY2V8U0xBfFBlbmRpbmdUaW1lfEVzY2FsYXRpb25UaW1lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIEVzY2FsYXRpb25VcGRhdGVUaW1lfEVzY2FsYXRpb25SZXNwb25zZVRpbWV8RXNjYWxhdGlvblNvbHV0aW9uVGltZQogICAgKTsKCiAgICAjYSByZXN1bHQgY291bGQgYmUKCiAgICBAUmVzdWx0ID0gKAogICAgICAgIHsKICAgICAgICAgICAgIEFnZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0+IDE1OTYsCiAgICAgICAgICAgIEFydGljbGVJRCAgICAgICAgICAgICAgICAgICAgICAgID0+IDkyMywKICAgICAgICAgICAgQXJ0aWNsZVR5cGUgICAgICAgICAgICAgICAgICAgICAgPT4gInBob25lIiwKICAgICAgICAgICAgQm9keSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gIlRoaXMgaXMgYW4gb3BlbiB0aWNrZXQiLAogICAgICAgICAgICBDaGFyc2V0ICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAidXRmLTgiLAogICAgICAgICAgICBDb250ZW50Q2hhcnNldCAgICAgICAgICAgICAgICAgICA9PiAidXRmLTgiLAogICAgICAgICAgICBDb250ZW50VHlwZSAgICAgICAgICAgICAgICAgICAgICA9PiAidGV4dC9wbGFpbjsiLAogICAgICAgICAgICBjaGFyc2V0ICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAidXRmLTgiLAogICAgICAgICAgICBDcmVhdGVkICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAiMjAxMC0wNi0yMyAxMTo0NjoxNSIsCiAgICAgICAgICAgIENyZWF0ZWRCeSAgICAgICAgICAgICAgICAgICAgICAgID0+IDEsCiAgICAgICAgICAgIEZpcnN0UmVzcG9uc2VUaW1lICAgICAgICAgICAgICAgID0+IC0xMjk2LAogICAgICAgICAgICBGaXJzdFJlc3BvbnNlVGltZURlc3RpbmF0aW9uRGF0ZSA9PiAiMjAxMC0wNi0yMyAxMTo1MToxNCIsCiAgICAgICAgICAgIEZpcnN0UmVzcG9uc2VUaW1lRGVzdGluYXRpb25UaW1lID0+IDEyNzczMTE4NzQsCiAgICAgICAgICAgIEZpcnN0UmVzcG9uc2VUaW1lRXNjYWxhdGlvbiAgICAgID0+IDEsCiAgICAgICAgICAgIEZpcnN0UmVzcG9uc2VUaW1lV29ya2luZ1RpbWUgICAgID0+IC0xMjYwLAogICAgICAgICAgICBGcm9tICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAiY3VzdG9tZXJAb3Rycy5vcmciLAogICAgICAgICAgICBJbmNvbWluZ1RpbWUgICAgICAgICAgICAgICAgICAgICA9PiAxMjc3MzExNTc1LAogICAgICAgICAgICBMb2NrICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAidW5sb2NrIiwKICAgICAgICAgICAgTWltZVR5cGUgICAgICAgICAgICAgICAgICAgICAgICAgPT4gInRleHQvcGxhaW4iLAogICAgICAgICAgICBPd25lciAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAiQWdlbnQxIiwKICAgICAgICAgICAgUHJpb3JpdHkgICAgICAgICAgICAgICAgICAgICAgICAgPT4gIjMgbm9ybWFsIiwKICAgICAgICAgICAgUHJpb3JpdHlDb2xvciAgICAgICAgICAgICAgICAgICAgPT4gIiNjZGNkY2QiLAogICAgICAgICAgICBRdWV1ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAiSnVuayIsCiAgICAgICAgICAgIFJlc3BvbnNpYmxlICAgICAgICAgICAgICAgICAgICAgID0+ICJBZ2VudDEiLAogICAgICAgICAgICBTZW5kZXJUeXBlICAgICAgICAgICAgICAgICAgICAgICA9PiAiY3VzdG9tZXIiLAogICAgICAgICAgICBTb2x1dGlvblRpbWUgICAgICAgICAgICAgICAgICAgICA9PiAtMTI5NiwKICAgICAgICAgICAgU29sdXRpb25UaW1lRGVzdGluYXRpb25EYXRlICAgICAgPT4gIjIwMTAtMDYtMjMgMTE6NTE6MTQiLAogICAgICAgICAgICBTb2x1dGlvblRpbWVEZXN0aW5hdGlvblRpbWUgICAgICA9PiAxMjc3MzExODc0LAogICAgICAgICAgICBTb2x1dGlvblRpbWVFc2NhbGF0aW9uICAgICAgICAgICA9PiAxLAogICAgICAgICAgICBTb2x1dGlvblRpbWVXb3JraW5nVGltZSAgICAgICAgICA9PiAtMTI2MCwKICAgICAgICAgICAgU3RhdGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gIm9wZW4iLAogICAgICAgICAgICBTdWJqZWN0ICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAiT3BlbiBUaWNrZXQgVGVzdCIsCiAgICAgICAgICAgIFRpY2tldElEICAgICAgICAgICAgICAgICAgICAgICAgID0+IDE3NiwKICAgICAgICAgICAgVGlja2V0TnVtYmVyICAgICAgICAgICAgICAgICAgICAgPT4gMjAxMDA2MjMxMDAwMDAxNSwKICAgICAgICAgICAgVGl0bGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gIk9wZW4gVGlja2V0IFRlc3QiLAogICAgICAgICAgICBUbyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAiSnVuayIsCiAgICAgICAgICAgIFR5cGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0+ICJJbmNpZGVudCIsCiAgICAgICAgICAgIFVudGlsVGltZSAgICAgICAgICAgICAgICAgICAgICAgID0+IDAsCiAgICAgICAgICAgIFVwZGF0ZVRpbWUgICAgICAgICAgICAgICAgICAgICAgID0+IC0xMjk1LAogICAgICAgICAgICBVcGRhdGVUaW1lRGVzdGluYXRpb25EYXRlICAgICAgICA9PiAiMjAxMC0wNi0yMyAxMTo1MToxNSIsCiAgICAgICAgICAgIFVwZGF0ZVRpbWVEZXN0aW5hdGlvblRpbWUgICAgICAgID0+IDEyNzczMTE4NzUsCiAgICAgICAgICAgIFVwZGF0ZVRpbWVFc2NhbGF0aW9uICAgICAgICAgICAgID0+IDEsCiAgICAgICAgICAgIFVwZGF0ZVRpbWVXb3JraW5nVGltZSAgICAgICAgICAgID0+IC0xMjYwLAogICAgICAgICAgICBTZWVuICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAxLAogICAgICAgIH0sCiAgICApOwoKPWN1dAoKc3ViIFN0YXR1c1ZpZXcgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGRlZmluZSBmaWx0ZXIKICAgIG15ICVGaWx0ZXJzID0gKAogICAgICAgIE9wZW4gPT4gewogICAgICAgICAgICBOYW1lICAgPT4gJ09wZW4nLAogICAgICAgICAgICBQcmlvICAgPT4gMTAwMCwKICAgICAgICAgICAgU2VhcmNoID0+IHsKICAgICAgICAgICAgICAgIFN0YXRlVHlwZSAgPT4gJ09wZW4nLAogICAgICAgICAgICAgICAgT3JkZXJCeSAgICA9PiAkUGFyYW17T3JkZXJCeX0sCiAgICAgICAgICAgICAgICBTb3J0QnkgICAgID0+ICRQYXJhbXtTb3J0Qnl9LAogICAgICAgICAgICAgICAgVXNlcklEICAgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgICAgIFBlcm1pc3Npb24gPT4gJ3JvJywKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIENsb3NlZCA9PiB7CiAgICAgICAgICAgIE5hbWUgICA9PiAnQ2xvc2VkJywKICAgICAgICAgICAgUHJpbyAgID0+IDEwMDEsCiAgICAgICAgICAgIFNlYXJjaCA9PiB7CiAgICAgICAgICAgICAgICBTdGF0ZVR5cGUgID0+ICdDbG9zZWQnLAogICAgICAgICAgICAgICAgT3JkZXJCeSAgICA9PiAkUGFyYW17T3JkZXJCeX0sCiAgICAgICAgICAgICAgICBTb3J0QnkgICAgID0+ICRQYXJhbXtTb3J0Qnl9LAogICAgICAgICAgICAgICAgVXNlcklEICAgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgICAgIFBlcm1pc3Npb24gPT4gJ3JvJywKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgKTsKCiAgICAjIGdldCB0aWNrZXQgb2JqZWN0CiAgICBteSAkVGlja2V0T2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlRpY2tldCcpOwoKICAgICMgZG8gc2hvd24gdGlja2V0cyBsb29rdXAKICAgIG15ICRMaW1pdCA9ICRQYXJhbXtMaW1pdH0gfHwgMTAwOwogICAgaWYgKCAkUGFyYW17RmlsdGVyfSApIHsKICAgICAgICBteSBAVmlld2FibGVUaWNrZXRzID0gJFRpY2tldE9iamVjdC0+VGlja2V0U2VhcmNoKAogICAgICAgICAgICAleyAkRmlsdGVyc3sgJFBhcmFte0ZpbHRlcn0gfS0+e1NlYXJjaH0gfSwKICAgICAgICAgICAgTGltaXQgID0+ICRMaW1pdCwKICAgICAgICAgICAgUmVzdWx0ID0+ICdBUlJBWScsCiAgICAgICAgKTsKICAgICAgICBteSBATGlzdDsKICAgICAgICBmb3IgbXkgJFRpY2tldElEIChAVmlld2FibGVUaWNrZXRzKSB7CiAgICAgICAgICAgIFRJQ0tFVElEOgogICAgICAgICAgICBuZXh0IFRJQ0tFVElEIGlmICEkVGlja2V0SUQ7CiAgICAgICAgICAgIG15ICVBcnRpY2xlID0gJFNlbGYtPlRpY2tldExpc3QoCiAgICAgICAgICAgICAgICBUaWNrZXRJRCA9PiAkVGlja2V0SUQsCiAgICAgICAgICAgICAgICBVc2VySUQgICA9PiAkUGFyYW17VXNlcklEfQogICAgICAgICAgICApOwogICAgICAgICAgICBuZXh0IFRJQ0tFVElEIGlmICElQXJ0aWNsZTsKICAgICAgICAgICAgcHVzaCBATGlzdCwgXCVBcnRpY2xlOwogICAgICAgIH0KICAgICAgICByZXR1cm4gQExpc3Q7CiAgICB9CgogICAgIyBkbyBOYXZCYXIgbG9va3VwCiAgICBteSBAU3RhdGVzOwogICAgZm9yIG15ICRGaWx0ZXIgKCBzb3J0IGtleXMgJUZpbHRlcnMgKSB7CiAgICAgICAgbXkgJENvdW50ID0gJFRpY2tldE9iamVjdC0+VGlja2V0U2VhcmNoKAogICAgICAgICAgICAleyAkRmlsdGVyc3skRmlsdGVyfS0+e1NlYXJjaH0gfSwKICAgICAgICAgICAgUmVzdWx0ID0+ICdDT1VOVCcsCiAgICAgICAgKTsKICAgICAgICBteSAkQ291bnROZXcgPSAkVGlja2V0T2JqZWN0LT5UaWNrZXRTZWFyY2goCiAgICAgICAgICAgICV7ICRGaWx0ZXJzeyRGaWx0ZXJ9LT57U2VhcmNofSB9LAogICAgICAgICAgICBSZXN1bHQgICAgID0+ICdDT1VOVCcsCiAgICAgICAgICAgIFRpY2tldEZsYWcgPT4gewogICAgICAgICAgICAgICAgU2VlbiA9PiAxLAogICAgICAgICAgICB9LAogICAgICAgICAgICBUaWNrZXRGbGFnVXNlcklEID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICk7CiAgICAgICAgJENvdW50TmV3ID0gJENvdW50IC0gJENvdW50TmV3OwoKICAgICAgICBwdXNoIEBTdGF0ZXMsIHsKICAgICAgICAgICAgU3RhdGVUeXBlICAgICAgICAgICAgICAgICAgICAgID0+ICRGaWx0ZXIsCiAgICAgICAgICAgIEZpbHRlck5hbWUgICAgICAgICAgICAgICAgICAgICA9PiAkRmlsdGVyc3skRmlsdGVyfS0+e05hbWV9LAogICAgICAgICAgICBOdW1iZXJPZlRpY2tldHMgICAgICAgICAgICAgICAgPT4gJENvdW50LAogICAgICAgICAgICBOdW1iZXJPZlRpY2tldHNXaXRoTmV3TWVzc2FnZXMgPT4gJENvdW50TmV3LAogICAgICAgIH07CiAgICB9CiAgICByZXR1cm4gQFN0YXRlczsKfQoKPWl0ZW0gTG9ja2VkVmlldygpCgpHZXQgdGhlIG51bWJlciBvZiBsb2NrZWQgdGlja2V0cyBieSBzdGF0dXMgdHlwZSAoYWxsLCBuZXcsIHJlbWluZGVyLCByZW1pbmRlciByZWFjaGVkICkgb3IgbGFzdApjdXN0b21lciBhcnRpY2xlIGluZm9ybWF0aW9uIGZyb20gZWFjaCBsb2NrZWQgdGlja2V0IGluIGVhY2ggc3RhdHVzIHdpdGhpbiBhbiBzcGVjaWZpZWQgZmlsdGVyLCBpZgp0aGUgIkZpbHRlciIgYXJndW1lbnQgaXMgc3BlY2lmaWVkLgoKICAgIG15IEBSZXN1bHQgPSAkaVBob25lT2JqZWN0LT5Mb2NrZWRWaWV3KAogICAgICAgIFVzZXJJRCAgPT4gMSwKCiAgICAgICAgIyBPcmRlckJ5IGFuZCBTb3J0QnkgKG9wdGlvbmFsKQogICAgICAgIE9yZGVyQnkgPT4gJ0Rvd24nLCAgIyBEb3dufFVwCiAgICAgICAgU29ydEJ5ICA9PiAnQWdlJywgICAjIE93bmVyfFJlc3BvbnNpYmxlfEN1c3RvbWVySUR8U3RhdGV8VGlja2V0TnVtYmVyfFF1ZXVlfFByaW9yaXR5fEFnZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBUeXBlfExvY2t8VGl0bGV8U2VydmljZXxTTEF8UGVuZGluZ1RpbWV8RXNjYWxhdGlvblRpbWUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgRXNjYWxhdGlvblVwZGF0ZVRpbWV8RXNjYWxhdGlvblJlc3BvbnNlVGltZXxFc2NhbGF0aW9uU29sdXRpb25UaW1lCiAgICApOwoKICAgICNhIHJlc3VsdCBjb3VsZCBiZQoKICAgIEBSZXN1bHQgPSAoCiAgICAgICAgewogICAgICAgICAgICBTdGF0ZVR5cGUgICAgICAgICAgICAgICAgICAgICAgPT4gIkFsbCIsCiAgICAgICAgICAgIE51bWJlck9mVGlja2V0cyAgICAgICAgICAgICAgICA9PiAyLAogICAgICAgICAgICBOdW1iZXJPZlRpY2tldHNXaXRoTmV3TWVzc2FnZXMgPT4gMCwKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICAgU3RhdGVUeXBlICAgICAgICAgICAgICAgICAgICAgID0+ICJOZXcsCiAgICAgICAgICAgIE51bWJlck9mVGlja2V0cyAgICAgICAgICAgICAgICA9PiAxLAogICAgICAgICAgICBOdW1iZXJPZlRpY2tldHNXaXRoTmV3TWVzc2FnZXMgPT4gMCwKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICAgU3RhdGVUeXBlICAgICAgICAgICAgICAgICAgICAgID0+ICJSZW1pbmRlciwKICAgICAgICAgICAgTnVtYmVyT2ZUaWNrZXRzICAgICAgICAgICAgICAgID0+IDAsCiAgICAgICAgICAgIE51bWJlck9mVGlja2V0c1dpdGhOZXdNZXNzYWdlcyA9PiAwLAogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgICBTdGF0ZVR5cGUgICAgICAgICAgICAgICAgICAgICAgPT4gIlJlbWluZGVyUmVhY2hlZCwKICAgICAgICAgICAgTnVtYmVyT2ZUaWNrZXRzICAgICAgICAgICAgICAgID0+IDEsCiAgICAgICAgICAgIE51bWJlck9mVGlja2V0c1dpdGhOZXdNZXNzYWdlcyA9PiAwLAogICAgICAgIH0sCiAgICApOwoKICAgIG15IEBSZXN1bHQgPSAkaVBob25lT2JqZWN0LT5Mb2NrZWRWaWV3KAogICAgICAgIFVzZXJJRCAgPT4gMSwKICAgICAgICBGaWx0ZXIgID0+ICJOZXciLAoKICAgICAgICAjTGltaXQgKG9wdGlvbmFsKSBzZXQgdG8gMTAwIGJ5IGRlZmF1bHQsIGlmIG5vdCBzcGVjaWZpZWQKICAgICAgICBMaW1pdCAgID0+IDUwLAoKICAgICAgICAjIE9yZGVyQnkgYW5kIFNvcnRCeSAob3B0aW9uYWwpCiAgICAgICAgT3JkZXJCeSA9PiAnRG93bicsICAjIERvd258VXAKICAgICAgICBTb3J0QnkgID0+ICdBZ2UnLCAgICMgT3duZXJ8UmVzcG9uc2libGV8Q3VzdG9tZXJJRHxTdGF0ZXxUaWNrZXROdW1iZXJ8UXVldWV8UHJpb3JpdHl8QWdlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIFR5cGV8TG9ja3xUaXRsZXxTZXJ2aWNlfFNMQXxQZW5kaW5nVGltZXxFc2NhbGF0aW9uVGltZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBFc2NhbGF0aW9uVXBkYXRlVGltZXxFc2NhbGF0aW9uUmVzcG9uc2VUaW1lfEVzY2FsYXRpb25Tb2x1dGlvblRpbWUKICAgICk7CgogICAgI2EgcmVzdWx0IGNvdWxkIGJlCgogICAgQFJlc3VsdCA9ICgKICAgICAgICB7CiAgICAgICAgICAgIEFnZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0+IDE1OTYsCiAgICAgICAgICAgIEFydGljbGVJRCAgICAgICAgICAgICAgICAgICAgICAgID0+IDkyMywKICAgICAgICAgICAgQXJ0aWNsZVR5cGUgICAgICAgICAgICAgICAgICAgICAgPT4gInBob25lIiwKICAgICAgICAgICAgQm9keSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gIlRoaXMgaXMgYW4gb3BlbiB0aWNrZXQiLAogICAgICAgICAgICBDaGFyc2V0ICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAidXRmLTgiLAogICAgICAgICAgICBDb250ZW50Q2hhcnNldCAgICAgICAgICAgICAgICAgICA9PiAidXRmLTgiLAogICAgICAgICAgICBDb250ZW50VHlwZSAgICAgICAgICAgICAgICAgICAgICA9PiAidGV4dC9wbGFpbjsiLAogICAgICAgICAgICBjaGFyc2V0ICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAidXRmLTgiLAogICAgICAgICAgICBDcmVhdGVkICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAiMjAxMC0wNi0yMyAxMTo0NjoxNSIsCiAgICAgICAgICAgIENyZWF0ZWRCeSAgICAgICAgICAgICAgICAgICAgICAgID0+IDEsCiAgICAgICAgICAgIEZpcnN0UmVzcG9uc2VUaW1lICAgICAgICAgICAgICAgID0+IC0xMjk2LAogICAgICAgICAgICBGaXJzdFJlc3BvbnNlVGltZURlc3RpbmF0aW9uRGF0ZSA9PiAiMjAxMC0wNi0yMyAxMTo1MToxNCIsCiAgICAgICAgICAgIEZpcnN0UmVzcG9uc2VUaW1lRGVzdGluYXRpb25UaW1lID0+IDEyNzczMTE4NzQsCiAgICAgICAgICAgIEZpcnN0UmVzcG9uc2VUaW1lRXNjYWxhdGlvbiAgICAgID0+IDEsCiAgICAgICAgICAgIEZpcnN0UmVzcG9uc2VUaW1lV29ya2luZ1RpbWUgICAgID0+IC0xMjYwLAogICAgICAgICAgICBGcm9tICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAiY3VzdG9tZXJAb3Rycy5vcmciLAogICAgICAgICAgICBJbmNvbWluZ1RpbWUgICAgICAgICAgICAgICAgICAgICA9PiAxMjc3MzExNTc1LAogICAgICAgICAgICBMb2NrICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAibG9jayIsCiAgICAgICAgICAgIE1pbWVUeXBlICAgICAgICAgICAgICAgICAgICAgICAgID0+ICJ0ZXh0L3BsYWluIiwKICAgICAgICAgICAgT3duZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gIkFnZW50MSIsCiAgICAgICAgICAgIFByaW9yaXR5ICAgICAgICAgICAgICAgICAgICAgICAgID0+ICIzIG5vcm1hbCIsCiAgICAgICAgICAgIFByaW9yaXR5Q29sb3IgICAgICAgICAgICAgICAgICAgID0+ICIjY2RjZGNkIiwKICAgICAgICAgICAgUXVldWUgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gIkp1bmsiLAogICAgICAgICAgICBSZXNwb25zaWJsZSAgICAgICAgICAgICAgICAgICAgICA9PiAiQWdlbnQxIiwKICAgICAgICAgICAgU2VuZGVyVHlwZSAgICAgICAgICAgICAgICAgICAgICAgPT4gImN1c3RvbWVyIiwKICAgICAgICAgICAgU29sdXRpb25UaW1lICAgICAgICAgICAgICAgICAgICAgPT4gLTEyOTYsCiAgICAgICAgICAgIFNvbHV0aW9uVGltZURlc3RpbmF0aW9uRGF0ZSAgICAgID0+ICIyMDEwLTA2LTIzIDExOjUxOjE0IiwKICAgICAgICAgICAgU29sdXRpb25UaW1lRGVzdGluYXRpb25UaW1lICAgICAgPT4gMTI3NzMxMTg3NCwKICAgICAgICAgICAgU29sdXRpb25UaW1lRXNjYWxhdGlvbiAgICAgICAgICAgPT4gMSwKICAgICAgICAgICAgU29sdXRpb25UaW1lV29ya2luZ1RpbWUgICAgICAgICAgPT4gLTEyNjAsCiAgICAgICAgICAgIFN0YXRlICAgICAgICAgICAgICAgICAgICAgICAgICAgID0+ICJvcGVuIiwKICAgICAgICAgICAgU3ViamVjdCAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gIk9wZW4gVGlja2V0IFRlc3QiLAogICAgICAgICAgICBUaWNrZXRJRCAgICAgICAgICAgICAgICAgICAgICAgICA9PiAxNzYsCiAgICAgICAgICAgIFRpY2tldE51bWJlciAgICAgICAgICAgICAgICAgICAgID0+IDIwMTAwNjIzMTAwMDAwMTUsCiAgICAgICAgICAgIFRpdGxlICAgICAgICAgICAgICAgICAgICAgICAgICAgID0+ICJPcGVuIFRpY2tldCBUZXN0IiwKICAgICAgICAgICAgVG8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gIkp1bmsiLAogICAgICAgICAgICBUeXBlICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAiSW5jaWRlbnQiLAogICAgICAgICAgICBVbnRpbFRpbWUgICAgICAgICAgICAgICAgICAgICAgICA9PiAwLAogICAgICAgICAgICBVcGRhdGVUaW1lICAgICAgICAgICAgICAgICAgICAgICA9PiAtMTI5NSwKICAgICAgICAgICAgVXBkYXRlVGltZURlc3RpbmF0aW9uRGF0ZSAgICAgICAgPT4gIjIwMTAtMDYtMjMgMTE6NTE6MTUiLAogICAgICAgICAgICBVcGRhdGVUaW1lRGVzdGluYXRpb25UaW1lICAgICAgICA9PiAxMjc3MzExODc1LAogICAgICAgICAgICBVcGRhdGVUaW1lRXNjYWxhdGlvbiAgICAgICAgICAgICA9PiAxLAogICAgICAgICAgICBVcGRhdGVUaW1lV29ya2luZ1RpbWUgICAgICAgICAgICA9PiAtMTI2MCwKICAgICAgICAgICAgU2VlbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gMSwgIyBvbmx5IG9uIG90cnMgMy54IGZyYW1ld29yawogICAgICAgIH0sCiAgICApOwoKPWN1dAoKc3ViIExvY2tlZFZpZXcgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAjIGRlZmluZSBmaWx0ZXIKICAgIG15ICVGaWx0ZXJzID0gKAogICAgICAgIEFsbCA9PiB7CiAgICAgICAgICAgIE5hbWUgICA9PiAnQWxsJywKICAgICAgICAgICAgUHJpbyAgID0+IDEwMDAsCiAgICAgICAgICAgIFNlYXJjaCA9PiB7CiAgICAgICAgICAgICAgICBMb2NrcyAgICAgID0+IFsnbG9jayddLAogICAgICAgICAgICAgICAgT3duZXJJRHMgICA9PiBbICRQYXJhbXtVc2VySUR9IF0sCiAgICAgICAgICAgICAgICBPcmRlckJ5ICAgID0+ICRQYXJhbXtPcmRlckJ5fSwKICAgICAgICAgICAgICAgIFNvcnRCeSAgICAgPT4gJFBhcmFte1NvcnRCeX0sCiAgICAgICAgICAgICAgICBVc2VySUQgICAgID0+IDEsCiAgICAgICAgICAgICAgICBQZXJtaXNzaW9uID0+ICdybycsCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICBOZXcgPT4gewogICAgICAgICAgICBOYW1lICAgPT4gJ05ldyBBcnRpY2xlJywKICAgICAgICAgICAgUHJpbyAgID0+IDEwMDEsCiAgICAgICAgICAgIFNlYXJjaCA9PiB7CiAgICAgICAgICAgICAgICBMb2NrcyAgICAgID0+IFsnbG9jayddLAogICAgICAgICAgICAgICAgT3duZXJJRHMgICA9PiBbICRQYXJhbXtVc2VySUR9IF0sCiAgICAgICAgICAgICAgICBUaWNrZXRGbGFnID0+IHsKICAgICAgICAgICAgICAgICAgICBTZWVuID0+IDEsCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgVGlja2V0RmxhZ1VzZXJJRCA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgICAgIE9yZGVyQnkgICAgICAgICAgPT4gJFBhcmFte09yZGVyQnl9LAogICAgICAgICAgICAgICAgU29ydEJ5ICAgICAgICAgICA9PiAkUGFyYW17U29ydEJ5fSwKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgICAgICAgPT4gMSwKICAgICAgICAgICAgICAgIFBlcm1pc3Npb24gICAgICAgPT4gJ3JvJywKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIFJlbWluZGVyID0+IHsKICAgICAgICAgICAgTmFtZSAgID0+ICdQZW5kaW5nJywKICAgICAgICAgICAgUHJpbyAgID0+IDEwMDIsCiAgICAgICAgICAgIFNlYXJjaCA9PiB7CiAgICAgICAgICAgICAgICBMb2NrcyAgICAgID0+IFsnbG9jayddLAogICAgICAgICAgICAgICAgU3RhdGVUeXBlICA9PiBbICdwZW5kaW5nIHJlbWluZGVyJywgJ3BlbmRpbmcgYXV0bycgXSwKICAgICAgICAgICAgICAgIE93bmVySURzICAgPT4gWyAkUGFyYW17VXNlcklEfSBdLAogICAgICAgICAgICAgICAgT3JkZXJCeSAgICA9PiAkUGFyYW17T3JkZXJCeX0sCiAgICAgICAgICAgICAgICBTb3J0QnkgICAgID0+ICRQYXJhbXtTb3J0Qnl9LAogICAgICAgICAgICAgICAgVXNlcklEICAgICA9PiAxLAogICAgICAgICAgICAgICAgUGVybWlzc2lvbiA9PiAncm8nLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgUmVtaW5kZXJSZWFjaGVkID0+IHsKICAgICAgICAgICAgTmFtZSAgID0+ICdSZW1pbmRlciBSZWFjaGVkJywKICAgICAgICAgICAgUHJpbyAgID0+IDEwMDMsCiAgICAgICAgICAgIFNlYXJjaCA9PiB7CiAgICAgICAgICAgICAgICBMb2NrcyAgICAgICAgICAgICAgICAgICAgICAgICA9PiBbJ2xvY2snXSwKICAgICAgICAgICAgICAgIFN0YXRlVHlwZSAgICAgICAgICAgICAgICAgICAgID0+IFsncGVuZGluZyByZW1pbmRlciddLAogICAgICAgICAgICAgICAgVGlja2V0UGVuZGluZ1RpbWVPbGRlck1pbnV0ZXMgPT4gMSwKICAgICAgICAgICAgICAgIE93bmVySURzICAgICAgICAgICAgICAgICAgICAgID0+IFsgJFBhcmFte1VzZXJJRH0gXSwKICAgICAgICAgICAgICAgIE9yZGVyQnkgICAgICAgICAgICAgICAgICAgICAgID0+ICRQYXJhbXtPcmRlckJ5fSwKICAgICAgICAgICAgICAgIFNvcnRCeSAgICAgICAgICAgICAgICAgICAgICAgID0+ICRQYXJhbXtTb3J0Qnl9LAogICAgICAgICAgICAgICAgVXNlcklEICAgICAgICAgICAgICAgICAgICAgICAgPT4gMSwKICAgICAgICAgICAgICAgIFBlcm1pc3Npb24gICAgICAgICAgICAgICAgICAgID0+ICdybycsCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICk7CgogICAgIyBnZXQgdGlja2V0IG9iamVjdAogICAgbXkgJFRpY2tldE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpUaWNrZXQnKTsKCiAgICAjIGRvIHNob3duIHRpY2tldHMgbG9va3VwCiAgICBteSAkTGltaXQgPSAkUGFyYW17TGltaXR9IHx8IDEwMDsKICAgIGlmICggJFBhcmFte0ZpbHRlcn0gKSB7CiAgICAgICAgbXkgQFZpZXdhYmxlVGlja2V0cyA9ICRUaWNrZXRPYmplY3QtPlRpY2tldFNlYXJjaCgKICAgICAgICAgICAgJXsgJEZpbHRlcnN7ICRQYXJhbXtGaWx0ZXJ9IH0tPntTZWFyY2h9IH0sCiAgICAgICAgICAgIExpbWl0ICA9PiAkTGltaXQsCiAgICAgICAgICAgIFJlc3VsdCA9PiAnQVJSQVknLAogICAgICAgICk7CiAgICAgICAgbXkgQExpc3Q7CiAgICAgICAgZm9yIG15ICRUaWNrZXRJRCAoQFZpZXdhYmxlVGlja2V0cykgewogICAgICAgICAgICBUSUNLRVRJRDoKICAgICAgICAgICAgbmV4dCBUSUNLRVRJRCBpZiAhJFRpY2tldElEOwogICAgICAgICAgICBteSAlQXJ0aWNsZSA9ICRTZWxmLT5UaWNrZXRMaXN0KAogICAgICAgICAgICAgICAgVGlja2V0SUQgPT4gJFRpY2tldElELAogICAgICAgICAgICAgICAgVXNlcklEICAgPT4gJFBhcmFte1VzZXJJRH0KICAgICAgICAgICAgKTsKICAgICAgICAgICAgbmV4dCBUSUNLRVRJRCBpZiAhJUFydGljbGU7CiAgICAgICAgICAgIHB1c2ggQExpc3QsIFwlQXJ0aWNsZTsKICAgICAgICB9CgogICAgICAgIGlmICggIUBMaXN0ICkgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiVGhlcmUgYXJlIG5vIGxvY2tlZCB0aWNrZXRzIHVuZGVyICRQYXJhbXtGaWx0ZXJ9IGZpbHRlciAiCiAgICAgICAgICAgICAgICAgICAgLiAiY2F0ZWdvcnkiLAogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIEBMaXN0OwogICAgfQoKICAgICMgZG8gTmF2QmFyIGxvb2t1cAogICAgbXkgQFN0YXRlczsKICAgIGZvciBteSAkRmlsdGVyICggc29ydCBrZXlzICVGaWx0ZXJzICkgewogICAgICAgIG15ICRDb3VudCA9ICRUaWNrZXRPYmplY3QtPlRpY2tldFNlYXJjaCgKICAgICAgICAgICAgJXsgJEZpbHRlcnN7JEZpbHRlcn0tPntTZWFyY2h9IH0sCiAgICAgICAgICAgIFJlc3VsdCA9PiAnQ09VTlQnLAogICAgICAgICk7CiAgICAgICAgbXkgJENvdW50TmV3ID0gJFRpY2tldE9iamVjdC0+VGlja2V0U2VhcmNoKAogICAgICAgICAgICAleyAkRmlsdGVyc3skRmlsdGVyfS0+e1NlYXJjaH0gfSwKICAgICAgICAgICAgUmVzdWx0ICAgICA9PiAnQ09VTlQnLAogICAgICAgICAgICBUaWNrZXRGbGFnID0+IHsKICAgICAgICAgICAgICAgIFNlZW4gPT4gMSwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgVGlja2V0RmxhZ1VzZXJJRCA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICApOwogICAgICAgICRDb3VudE5ldyA9ICRDb3VudCAtICRDb3VudE5ldzsKCiAgICAgICAgcHVzaCBAU3RhdGVzLCB7CiAgICAgICAgICAgIFN0YXRlVHlwZSAgICAgICAgICAgICAgICAgICAgICA9PiAkRmlsdGVyLAogICAgICAgICAgICBGaWx0ZXJOYW1lICAgICAgICAgICAgICAgICAgICAgPT4gJEZpbHRlcnN7JEZpbHRlcn0tPntOYW1lfSwKICAgICAgICAgICAgTnVtYmVyT2ZUaWNrZXRzICAgICAgICAgICAgICAgID0+ICRDb3VudCwKICAgICAgICAgICAgTnVtYmVyT2ZUaWNrZXRzV2l0aE5ld01lc3NhZ2VzID0+ICRDb3VudE5ldywKICAgICAgICB9OwogICAgfQogICAgcmV0dXJuIEBTdGF0ZXM7Cn0KCj1pdGVtIFdhdGNoZWRWaWV3KCkKCkdldCB0aGUgbnVtYmVyIG9mIHdhdGNoZWQgdGlja2V0cyBieSBzdGF0dXMgdHlwZSAoYWxsLCBuZXcsIHJlbWluZGVyLCByZW1pbmRlciByZWFjaGVkICkgb3IgbGFzdApjdXN0b21lciBhcnRpY2xlIGluZm9ybWF0aW9uIGZyb20gZWFjaCB3YXRjaGVkIHRpY2tldCBpbiBlYWNoIHN0YXR1cyB3aXRoaW4gYW4gc3BlY2lmaWVkIGZpbHRlciwgaWYKdGhlICJGaWx0ZXIiIGFyZ3VtZW50IGlzIHNwZWNpZmllZC4KCiAgICBteSBAUmVzdWx0ID0gJGlQaG9uZU9iamVjdC0+V2F0Y2hlZFZpZXcoCiAgICAgICAgVXNlcklEICA9PiAxLAoKICAgICAgICAjIE9yZGVyQnkgYW5kIFNvcnRCeSAob3B0aW9uYWwpCiAgICAgICAgT3JkZXJCeSA9PiAnRG93bicsICAjIERvd258VXAKICAgICAgICBTb3J0QnkgID0+ICdBZ2UnLCAgICMgT3duZXJ8UmVzcG9uc2libGV8Q3VzdG9tZXJJRHxTdGF0ZXxUaWNrZXROdW1iZXJ8UXVldWV8UHJpb3JpdHl8QWdlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIFR5cGV8TG9ja3xUaXRsZXxTZXJ2aWNlfFNMQXxQZW5kaW5nVGltZXxFc2NhbGF0aW9uVGltZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBFc2NhbGF0aW9uVXBkYXRlVGltZXxFc2NhbGF0aW9uUmVzcG9uc2VUaW1lfEVzY2FsYXRpb25Tb2x1dGlvblRpbWUKICAgICk7CgogICAgI2EgcmVzdWx0IGNvdWxkIGJlCgogICAgQFJlc3VsdCA9ICgKICAgICAgICB7CiAgICAgICAgICAgIFN0YXRlVHlwZSAgICAgICAgICAgICAgICAgICAgICA9PiAiQWxsIiwKICAgICAgICAgICAgTnVtYmVyT2ZUaWNrZXRzICAgICAgICAgICAgICAgID0+IDIsCiAgICAgICAgICAgIE51bWJlck9mVGlja2V0c1dpdGhOZXdNZXNzYWdlcyA9PiAwLAogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgICBTdGF0ZVR5cGUgICAgICAgICAgICAgICAgICAgICAgPT4gIk5ldywKICAgICAgICAgICAgTnVtYmVyT2ZUaWNrZXRzICAgICAgICAgICAgICAgID0+IDEsCiAgICAgICAgICAgIE51bWJlck9mVGlja2V0c1dpdGhOZXdNZXNzYWdlcyA9PiAwLAogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgICBTdGF0ZVR5cGUgICAgICAgICAgICAgICAgICAgICAgPT4gIlJlbWluZGVyLAogICAgICAgICAgICBOdW1iZXJPZlRpY2tldHMgICAgICAgICAgICAgICAgPT4gMCwKICAgICAgICAgICAgTnVtYmVyT2ZUaWNrZXRzV2l0aE5ld01lc3NhZ2VzID0+IDAsCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAgIFN0YXRlVHlwZSAgICAgICAgICAgICAgICAgICAgICA9PiAiUmVtaW5kZXJSZWFjaGVkLAogICAgICAgICAgICBOdW1iZXJPZlRpY2tldHMgICAgICAgICAgICAgICAgPT4gMSwKICAgICAgICAgICAgTnVtYmVyT2ZUaWNrZXRzV2l0aE5ld01lc3NhZ2VzID0+IDAsCiAgICAgICAgfSwKICAgICk7CgogICAgbXkgQFJlc3VsdCA9ICRpUGhvbmVPYmplY3QtPldhdGNoZWRWaWV3KAogICAgICAgIFVzZXJJRCAgPT4gMSwKICAgICAgICBGaWx0ZXIgID0+ICJOZXciLAoKICAgICAgICAjTGltaXQgKG9wdGlvbmFsKSBzZXQgdG8gMTAwIGJ5IGRlZmF1bHQsIGlmIG5vdCBzcGVjaWZpZWQKICAgICAgICBMaW1pdCAgID0+IDUwLAoKICAgICAgICAjIE9yZGVyQnkgYW5kIFNvcnRCeSAob3B0aW9uYWwpCiAgICAgICAgT3JkZXJCeSA9PiAnRG93bicsICAjIERvd258VXAKICAgICAgICBTb3J0QnkgID0+ICdBZ2UnLCAgICMgT3duZXJ8UmVzcG9uc2libGV8Q3VzdG9tZXJJRHxTdGF0ZXxUaWNrZXROdW1iZXJ8UXVldWV8UHJpb3JpdHl8QWdlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIFR5cGV8TG9ja3xUaXRsZXxTZXJ2aWNlfFNMQXxQZW5kaW5nVGltZXxFc2NhbGF0aW9uVGltZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBFc2NhbGF0aW9uVXBkYXRlVGltZXxFc2NhbGF0aW9uUmVzcG9uc2VUaW1lfEVzY2FsYXRpb25Tb2x1dGlvblRpbWUKICAgICk7CgogICAgI2EgcmVzdWx0IGNvdWxkIGJlCgogICAgQFJlc3VsdCA9ICgKICAgICAgICB7CiAgICAgICAgICAgIEFnZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0+IDE1OTYsCiAgICAgICAgICAgIEFydGljbGVJRCAgICAgICAgICAgICAgICAgICAgICAgID0+IDkyMywKICAgICAgICAgICAgQXJ0aWNsZVR5cGUgICAgICAgICAgICAgICAgICAgICAgPT4gInBob25lIiwKICAgICAgICAgICAgQm9keSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gIlRoaXMgaXMgYW4gb3BlbiB0aWNrZXQiLAogICAgICAgICAgICBDaGFyc2V0ICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAidXRmLTgiLAogICAgICAgICAgICBDb250ZW50Q2hhcnNldCAgICAgICAgICAgICAgICAgICA9PiAidXRmLTgiLAogICAgICAgICAgICBDb250ZW50VHlwZSAgICAgICAgICAgICAgICAgICAgICA9PiAidGV4dC9wbGFpbjsiLAogICAgICAgICAgICBjaGFyc2V0ICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAidXRmLTgiLAogICAgICAgICAgICBDcmVhdGVkICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAiMjAxMC0wNi0yMyAxMTo0NjoxNSIsCiAgICAgICAgICAgIENyZWF0ZWRCeSAgICAgICAgICAgICAgICAgICAgICAgID0+IDEsCiAgICAgICAgICAgIEZpcnN0UmVzcG9uc2VUaW1lICAgICAgICAgICAgICAgID0+IC0xMjk2LAogICAgICAgICAgICBGaXJzdFJlc3BvbnNlVGltZURlc3RpbmF0aW9uRGF0ZSA9PiAiMjAxMC0wNi0yMyAxMTo1MToxNCIsCiAgICAgICAgICAgIEZpcnN0UmVzcG9uc2VUaW1lRGVzdGluYXRpb25UaW1lID0+IDEyNzczMTE4NzQsCiAgICAgICAgICAgIEZpcnN0UmVzcG9uc2VUaW1lRXNjYWxhdGlvbiAgICAgID0+IDEsCiAgICAgICAgICAgIEZpcnN0UmVzcG9uc2VUaW1lV29ya2luZ1RpbWUgICAgID0+IC0xMjYwLAogICAgICAgICAgICBGcm9tICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAiY3VzdG9tZXJAb3Rycy5vcmciLAogICAgICAgICAgICBJbmNvbWluZ1RpbWUgICAgICAgICAgICAgICAgICAgICA9PiAxMjc3MzExNTc1LAogICAgICAgICAgICBMb2NrICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAibG9jayIsCiAgICAgICAgICAgIE1pbWVUeXBlICAgICAgICAgICAgICAgICAgICAgICAgID0+ICJ0ZXh0L3BsYWluIiwKICAgICAgICAgICAgT3duZXIgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gIkFnZW50MSIsCiAgICAgICAgICAgIFByaW9yaXR5ICAgICAgICAgICAgICAgICAgICAgICAgID0+ICIzIG5vcm1hbCIsCiAgICAgICAgICAgIFByaW9yaXR5Q29sb3IgICAgICAgICAgICAgICAgICAgID0+ICIjY2RjZGNkIiwKICAgICAgICAgICAgUXVldWUgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gIkp1bmsiLAogICAgICAgICAgICBSZXNwb25zaWJsZSAgICAgICAgICAgICAgICAgICAgICA9PiAiQWdlbnQxIiwKICAgICAgICAgICAgU2VuZGVyVHlwZSAgICAgICAgICAgICAgICAgICAgICAgPT4gImN1c3RvbWVyIiwKICAgICAgICAgICAgU29sdXRpb25UaW1lICAgICAgICAgICAgICAgICAgICAgPT4gLTEyOTYsCiAgICAgICAgICAgIFNvbHV0aW9uVGltZURlc3RpbmF0aW9uRGF0ZSAgICAgID0+ICIyMDEwLTA2LTIzIDExOjUxOjE0IiwKICAgICAgICAgICAgU29sdXRpb25UaW1lRGVzdGluYXRpb25UaW1lICAgICAgPT4gMTI3NzMxMTg3NCwKICAgICAgICAgICAgU29sdXRpb25UaW1lRXNjYWxhdGlvbiAgICAgICAgICAgPT4gMSwKICAgICAgICAgICAgU29sdXRpb25UaW1lV29ya2luZ1RpbWUgICAgICAgICAgPT4gLTEyNjAsCiAgICAgICAgICAgIFN0YXRlICAgICAgICAgICAgICAgICAgICAgICAgICAgID0+ICJvcGVuIiwKICAgICAgICAgICAgU3ViamVjdCAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gIk9wZW4gVGlja2V0IFRlc3QiLAogICAgICAgICAgICBUaWNrZXRJRCAgICAgICAgICAgICAgICAgICAgICAgICA9PiAxNzYsCiAgICAgICAgICAgIFRpY2tldE51bWJlciAgICAgICAgICAgICAgICAgICAgID0+IDIwMTAwNjIzMTAwMDAwMTUsCiAgICAgICAgICAgIFRpdGxlICAgICAgICAgICAgICAgICAgICAgICAgICAgID0+ICJPcGVuIFRpY2tldCBUZXN0IiwKICAgICAgICAgICAgVG8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gIkp1bmsiLAogICAgICAgICAgICBUeXBlICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAiSW5jaWRlbnQiLAogICAgICAgICAgICBVbnRpbFRpbWUgICAgICAgICAgICAgICAgICAgICAgICA9PiAwLAogICAgICAgICAgICBVcGRhdGVUaW1lICAgICAgICAgICAgICAgICAgICAgICA9PiAtMTI5NSwKICAgICAgICAgICAgVXBkYXRlVGltZURlc3RpbmF0aW9uRGF0ZSAgICAgICAgPT4gIjIwMTAtMDYtMjMgMTE6NTE6MTUiLAogICAgICAgICAgICBVcGRhdGVUaW1lRGVzdGluYXRpb25UaW1lICAgICAgICA9PiAxMjc3MzExODc1LAogICAgICAgICAgICBVcGRhdGVUaW1lRXNjYWxhdGlvbiAgICAgICAgICAgICA9PiAxLAogICAgICAgICAgICBVcGRhdGVUaW1lV29ya2luZ1RpbWUgICAgICAgICAgICA9PiAtMTI2MCwKICAgICAgICAgICAgU2VlbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gMSwgIyBvbmx5IG9uIG90cnMgMy54IGZyYW1ld29yawogICAgICAgIH0sCiAgICApOwoKPWN1dAoKc3ViIFdhdGNoZWRWaWV3IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBkZWZpbmUgZmlsdGVyCiAgICAjIGdldCBhbGwgd2F0Y2hlZCB0aWNrZXRzIG5vIG1hdHRlciBpZiB0aGV5IGFyZSBsb2NrZWQgb3Igbm90CiAgICBteSAlRmlsdGVycyA9ICgKICAgICAgICBBbGwgPT4gewogICAgICAgICAgICBOYW1lICAgPT4gJ0FsbCcsCiAgICAgICAgICAgIFByaW8gICA9PiAxMDAwLAogICAgICAgICAgICBTZWFyY2ggPT4gewogICAgICAgICAgICAgICAgV2F0Y2hVc2VySURzID0+IFsgJFBhcmFte1VzZXJJRH0gXSwKICAgICAgICAgICAgICAgIE9yZGVyQnkgICAgICA9PiAkUGFyYW17T3JkZXJCeX0sCiAgICAgICAgICAgICAgICBTb3J0QnkgICAgICAgPT4gJFBhcmFte1NvcnRCeX0sCiAgICAgICAgICAgICAgICBVc2VySUQgICAgICAgPT4gMSwKICAgICAgICAgICAgICAgIFBlcm1pc3Npb24gICA9PiAncm8nLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgTmV3ID0+IHsKICAgICAgICAgICAgTmFtZSAgID0+ICdOZXcgQXJ0aWNsZScsCiAgICAgICAgICAgIFByaW8gICA9PiAxMDAxLAogICAgICAgICAgICBTZWFyY2ggPT4gewogICAgICAgICAgICAgICAgV2F0Y2hVc2VySURzID0+IFsgJFBhcmFte1VzZXJJRH0gXSwKICAgICAgICAgICAgICAgIFRpY2tldEZsYWcgICA9PiB7CiAgICAgICAgICAgICAgICAgICAgU2VlbiA9PiAxLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIFRpY2tldEZsYWdVc2VySUQgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgICAgICBPcmRlckJ5ICAgICAgICAgID0+ICRQYXJhbXtPcmRlckJ5fSwKICAgICAgICAgICAgICAgIFNvcnRCeSAgICAgICAgICAgPT4gJFBhcmFte1NvcnRCeX0sCiAgICAgICAgICAgICAgICBVc2VySUQgICAgICAgICAgID0+IDEsCiAgICAgICAgICAgICAgICBQZXJtaXNzaW9uICAgICAgID0+ICdybycsCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICBSZW1pbmRlciA9PiB7CiAgICAgICAgICAgIE5hbWUgICA9PiAnUGVuZGluZycsCiAgICAgICAgICAgIFByaW8gICA9PiAxMDAyLAogICAgICAgICAgICBTZWFyY2ggPT4gewogICAgICAgICAgICAgICAgU3RhdGVUeXBlICAgID0+IFsgJ3BlbmRpbmcgcmVtaW5kZXInLCAncGVuZGluZyBhdXRvJyBdLAogICAgICAgICAgICAgICAgV2F0Y2hVc2VySURzID0+IFsgJFBhcmFte1VzZXJJRH0gXSwKICAgICAgICAgICAgICAgIE9yZGVyQnkgICAgICA9PiAkUGFyYW17T3JkZXJCeX0sCiAgICAgICAgICAgICAgICBTb3J0QnkgICAgICAgPT4gJFBhcmFte1NvcnRCeX0sCiAgICAgICAgICAgICAgICBVc2VySUQgICAgICAgPT4gMSwKICAgICAgICAgICAgICAgIFBlcm1pc3Npb24gICA9PiAncm8nLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgUmVtaW5kZXJSZWFjaGVkID0+IHsKICAgICAgICAgICAgTmFtZSAgID0+ICdSZW1pbmRlciBSZWFjaGVkJywKICAgICAgICAgICAgUHJpbyAgID0+IDEwMDMsCiAgICAgICAgICAgIFNlYXJjaCA9PiB7CiAgICAgICAgICAgICAgICBTdGF0ZVR5cGUgICAgICAgICAgICAgICAgICAgICA9PiBbJ3BlbmRpbmcgcmVtaW5kZXInXSwKICAgICAgICAgICAgICAgIFRpY2tldFBlbmRpbmdUaW1lT2xkZXJNaW51dGVzID0+IDEsCiAgICAgICAgICAgICAgICBXYXRjaFVzZXJJRHMgICAgICAgICAgICAgICAgICA9PiBbICRQYXJhbXtVc2VySUR9IF0sCiAgICAgICAgICAgICAgICBPcmRlckJ5ICAgICAgICAgICAgICAgICAgICAgICA9PiAkUGFyYW17T3JkZXJCeX0sCiAgICAgICAgICAgICAgICBTb3J0QnkgICAgICAgICAgICAgICAgICAgICAgICA9PiAkUGFyYW17U29ydEJ5fSwKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgICAgICAgICAgICAgICAgICAgID0+IDEsCiAgICAgICAgICAgICAgICBQZXJtaXNzaW9uICAgICAgICAgICAgICAgICAgICA9PiAncm8nLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICApOwoKICAgIGlmICggJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKS0+R2V0KCdUaWNrZXQ6OldhdGNoZXInKSApIHsKCiAgICAgICAgIyBnZXQgdGlja2V0IG9iamVjdAogICAgICAgIG15ICRUaWNrZXRPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VGlja2V0Jyk7CgogICAgICAgICMgZG8gc2hvd24gdGlja2V0cyBsb29rdXAKICAgICAgICBteSAkTGltaXQgPSAkUGFyYW17TGltaXR9IHx8IDEwMDsKICAgICAgICBpZiAoICRQYXJhbXtGaWx0ZXJ9ICkgewogICAgICAgICAgICBteSBAVmlld2FibGVUaWNrZXRzID0gJFRpY2tldE9iamVjdC0+VGlja2V0U2VhcmNoKAogICAgICAgICAgICAgICAgJXsgJEZpbHRlcnN7ICRQYXJhbXtGaWx0ZXJ9IH0tPntTZWFyY2h9IH0sCiAgICAgICAgICAgICAgICBMaW1pdCAgPT4gJExpbWl0LAogICAgICAgICAgICAgICAgUmVzdWx0ID0+ICdBUlJBWScsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIG15IEBMaXN0OwogICAgICAgICAgICBmb3IgbXkgJFRpY2tldElEIChAVmlld2FibGVUaWNrZXRzKSB7CiAgICAgICAgICAgICAgICBUSUNLRVRJRDoKICAgICAgICAgICAgICAgIG5leHQgVElDS0VUSUQgaWYgISRUaWNrZXRJRDsKICAgICAgICAgICAgICAgIG15ICVBcnRpY2xlID0gJFNlbGYtPlRpY2tldExpc3QoCiAgICAgICAgICAgICAgICAgICAgVGlja2V0SUQgPT4gJFRpY2tldElELAogICAgICAgICAgICAgICAgICAgIFVzZXJJRCAgID0+ICRQYXJhbXtVc2VySUR9CiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgbmV4dCBUSUNLRVRJRCBpZiAhJUFydGljbGU7CiAgICAgICAgICAgICAgICBwdXNoIEBMaXN0LCBcJUFydGljbGU7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYgKCAhQExpc3QgKSB7CiAgICAgICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJUaGVyZSBhcmUgbm8gd2F0Y2hlZCB0aWNrZXRzIHVuZGVyICRQYXJhbXtGaWx0ZXJ9IGZpbHRlciAiCiAgICAgICAgICAgICAgICAgICAgICAgIC4gImNhdGVnb3J5IiwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgcmV0dXJuIEBMaXN0OwogICAgICAgIH0KCiAgICAgICAgIyBkbyBOYXZCYXIgbG9va3VwCiAgICAgICAgbXkgQFN0YXRlczsKICAgICAgICBmb3IgbXkgJEZpbHRlciAoIHNvcnQga2V5cyAlRmlsdGVycyApIHsKICAgICAgICAgICAgbXkgJENvdW50ID0gJFRpY2tldE9iamVjdC0+VGlja2V0U2VhcmNoKAogICAgICAgICAgICAgICAgJXsgJEZpbHRlcnN7JEZpbHRlcn0tPntTZWFyY2h9IH0sCiAgICAgICAgICAgICAgICBSZXN1bHQgPT4gJ0NPVU5UJywKICAgICAgICAgICAgKTsKICAgICAgICAgICAgbXkgJENvdW50TmV3ID0gJFRpY2tldE9iamVjdC0+VGlja2V0U2VhcmNoKAogICAgICAgICAgICAgICAgJXsgJEZpbHRlcnN7JEZpbHRlcn0tPntTZWFyY2h9IH0sCiAgICAgICAgICAgICAgICBSZXN1bHQgICAgID0+ICdDT1VOVCcsCiAgICAgICAgICAgICAgICBUaWNrZXRGbGFnID0+IHsKICAgICAgICAgICAgICAgICAgICBTZWVuID0+IDEsCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgVGlja2V0RmxhZ1VzZXJJRCA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgJENvdW50TmV3ID0gJENvdW50IC0gJENvdW50TmV3OwoKICAgICAgICAgICAgcHVzaCBAU3RhdGVzLCB7CiAgICAgICAgICAgICAgICBTdGF0ZVR5cGUgICAgICAgICAgICAgICAgICAgICAgPT4gJEZpbHRlciwKICAgICAgICAgICAgICAgIEZpbHRlck5hbWUgICAgICAgICAgICAgICAgICAgICA9PiAkRmlsdGVyc3skRmlsdGVyfS0+e05hbWV9LAogICAgICAgICAgICAgICAgTnVtYmVyT2ZUaWNrZXRzICAgICAgICAgICAgICAgID0+ICRDb3VudCwKICAgICAgICAgICAgICAgIE51bWJlck9mVGlja2V0c1dpdGhOZXdNZXNzYWdlcyA9PiAkQ291bnROZXcsCiAgICAgICAgICAgIH07CiAgICAgICAgfQogICAgICAgIHJldHVybiBAU3RhdGVzOwogICAgfQogICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICBNZXNzYWdlICA9PiAnVGlja2V0IHdhdGNoZXIgZmVhdHVyZSBpcyBub3QgZW5hYmxlIGluIHN5c3RlbSBjb25maWd1cmF0aW9uICcKICAgICAgICAgICAgLiAnUGxlYXNlIGNvbnRhY3QgYWRtaW4nLAogICAgKTsKICAgIHJldHVybiAtMTsKfQoKPWl0ZW0gUmVzcG9uc2libGVWaWV3KCkKCkdldCB0aGUgbnVtYmVyIG9mIGxvY2tlZCBvciB1bmxvY2tlZCB0aWNrZXRzIHdoZXJlIHRoZSB1c2VyIGlzIHJlc3BvbnNpYmxlIGZvciBieSBzdGF0dXMgdHlwZQooYWxsLCBuZXcsIHJlbWluZGVyLCByZW1pbmRlciByZWFjaGVkICkgb3IgbGFzdCBjdXN0b21lciBhcnRpY2xlIGluZm9ybWF0aW9uIGZyb20gZWFjaCB0aWNrZXQgd2hlcmUKdGhlIHVzZXIgaXMgcmVzcG9uc2libGUgZm9yICBpbiBlYWNoIHN0YXR1cyB3aXRoaW4gYW4gc3BlY2lmaWVkIGZpbHRlciwgaWYgdGhlICJGaWx0ZXIiIGFyZ3VtZW50IGlzCnNwZWNpZmllZC4KCiAgICBteSBAUmVzdWx0ID0gJGlQaG9uZU9iamVjdC0+UmVzcG9uc2libGVWaWV3KAogICAgICAgIFVzZXJJRCAgPT4gMSwKCiAgICAgICAgIyBPcmRlckJ5IGFuZCBTb3J0QnkgKG9wdGlvbmFsKQogICAgICAgIE9yZGVyQnkgPT4gJ0Rvd24nLCAgIyBEb3dufFVwCiAgICAgICAgU29ydEJ5ICA9PiAnQWdlJywgICAjIE93bmVyfFJlc3BvbnNpYmxlfEN1c3RvbWVySUR8U3RhdGV8VGlja2V0TnVtYmVyfFF1ZXVlfFByaW9yaXR5fEFnZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBUeXBlfExvY2t8VGl0bGV8U2VydmljZXxTTEF8UGVuZGluZ1RpbWV8RXNjYWxhdGlvblRpbWUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgRXNjYWxhdGlvblVwZGF0ZVRpbWV8RXNjYWxhdGlvblJlc3BvbnNlVGltZXxFc2NhbGF0aW9uU29sdXRpb25UaW1lCiAgICApOwoKICAgICNhIHJlc3VsdCBjb3VsZCBiZQoKICAgIEBSZXN1bHQgPSAoCiAgICAgICAgewogICAgICAgICAgICBTdGF0ZVR5cGUgICAgICAgICAgICAgICAgICAgICAgPT4gIkFsbCIsCiAgICAgICAgICAgIE51bWJlck9mVGlja2V0cyAgICAgICAgICAgICAgICA9PiAyLAogICAgICAgICAgICBOdW1iZXJPZlRpY2tldHNXaXRoTmV3TWVzc2FnZXMgPT4gMCwKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICAgU3RhdGVUeXBlICAgICAgICAgICAgICAgICAgICAgID0+ICJOZXcsCiAgICAgICAgICAgIE51bWJlck9mVGlja2V0cyAgICAgICAgICAgICAgICA9PiAxLAogICAgICAgICAgICBOdW1iZXJPZlRpY2tldHNXaXRoTmV3TWVzc2FnZXMgPT4gMCwKICAgICAgICB9LAogICAgICAgIHsKICAgICAgICAgICAgU3RhdGVUeXBlICAgICAgICAgICAgICAgICAgICAgID0+ICJSZW1pbmRlciwKICAgICAgICAgICAgTnVtYmVyT2ZUaWNrZXRzICAgICAgICAgICAgICAgID0+IDAsCiAgICAgICAgICAgIE51bWJlck9mVGlja2V0c1dpdGhOZXdNZXNzYWdlcyA9PiAwLAogICAgICAgIH0sCiAgICAgICAgewogICAgICAgICAgICBTdGF0ZVR5cGUgICAgICAgICAgICAgICAgICAgICAgPT4gIlJlbWluZGVyUmVhY2hlZCwKICAgICAgICAgICAgTnVtYmVyT2ZUaWNrZXRzICAgICAgICAgICAgICAgID0+IDEsCiAgICAgICAgICAgIE51bWJlck9mVGlja2V0c1dpdGhOZXdNZXNzYWdlcyA9PiAwLAogICAgICAgIH0sCiAgICApOwoKICAgIG15IEBSZXN1bHQgPSAkaVBob25lT2JqZWN0LT5SZXNwb25zaWJsZVZpZXcoCiAgICAgICAgVXNlcklEICA9PiAxLAogICAgICAgIEZpbHRlciAgPT4gIk5ldyIsCgogICAgICAgICNMaW1pdCAob3B0aW9uYWwpIHNldCB0byAxMDAgYnkgZGVmYXVsdCwgaWYgbm90IHNwZWNpZmllZAogICAgICAgIExpbWl0ICAgPT4gNTAsCgogICAgICAgICMgT3JkZXJCeSBhbmQgU29ydEJ5IChvcHRpb25hbCkKICAgICAgICBPcmRlckJ5ID0+ICdEb3duJywgICMgRG93bnxVcAogICAgICAgIFNvcnRCeSAgPT4gJ0FnZScsICAgIyBPd25lcnxSZXNwb25zaWJsZXxDdXN0b21lcklEfFN0YXRlfFRpY2tldE51bWJlcnxRdWV1ZXxQcmlvcml0eXxBZ2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgVHlwZXxMb2NrfFRpdGxlfFNlcnZpY2V8U0xBfFBlbmRpbmdUaW1lfEVzY2FsYXRpb25UaW1lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIEVzY2FsYXRpb25VcGRhdGVUaW1lfEVzY2FsYXRpb25SZXNwb25zZVRpbWV8RXNjYWxhdGlvblNvbHV0aW9uVGltZQogICAgKTsKCiAgICAjYSByZXN1bHQgY291bGQgYmUKCiAgICBAUmVzdWx0ID0gKAogICAgICAgIHsKICAgICAgICAgICAgQWdlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gMTU5NiwKICAgICAgICAgICAgQXJ0aWNsZUlEICAgICAgICAgICAgICAgICAgICAgICAgPT4gOTIzLAogICAgICAgICAgICBBcnRpY2xlVHlwZSAgICAgICAgICAgICAgICAgICAgICA9PiAicGhvbmUiLAogICAgICAgICAgICBCb2R5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAiVGhpcyBpcyBhbiBvcGVuIHRpY2tldCIsCiAgICAgICAgICAgIENoYXJzZXQgICAgICAgICAgICAgICAgICAgICAgICAgID0+ICJ1dGYtOCIsCiAgICAgICAgICAgIENvbnRlbnRDaGFyc2V0ICAgICAgICAgICAgICAgICAgID0+ICJ1dGYtOCIsCiAgICAgICAgICAgIENvbnRlbnRUeXBlICAgICAgICAgICAgICAgICAgICAgID0+ICJ0ZXh0L3BsYWluOyIsCiAgICAgICAgICAgIGNoYXJzZXQgICAgICAgICAgICAgICAgICAgICAgICAgID0+ICJ1dGYtOCIsCiAgICAgICAgICAgIENyZWF0ZWQgICAgICAgICAgICAgICAgICAgICAgICAgID0+ICIyMDEwLTA2LTIzIDExOjQ2OjE1IiwKICAgICAgICAgICAgQ3JlYXRlZEJ5ICAgICAgICAgICAgICAgICAgICAgICAgPT4gMSwKICAgICAgICAgICAgRmlyc3RSZXNwb25zZVRpbWUgICAgICAgICAgICAgICAgPT4gLTEyOTYsCiAgICAgICAgICAgIEZpcnN0UmVzcG9uc2VUaW1lRGVzdGluYXRpb25EYXRlID0+ICIyMDEwLTA2LTIzIDExOjUxOjE0IiwKICAgICAgICAgICAgRmlyc3RSZXNwb25zZVRpbWVEZXN0aW5hdGlvblRpbWUgPT4gMTI3NzMxMTg3NCwKICAgICAgICAgICAgRmlyc3RSZXNwb25zZVRpbWVFc2NhbGF0aW9uICAgICAgPT4gMSwKICAgICAgICAgICAgRmlyc3RSZXNwb25zZVRpbWVXb3JraW5nVGltZSAgICAgPT4gLTEyNjAsCiAgICAgICAgICAgIEZyb20gICAgICAgICAgICAgICAgICAgICAgICAgICAgID0+ICJjdXN0b21lckBvdHJzLm9yZyIsCiAgICAgICAgICAgIEluY29taW5nVGltZSAgICAgICAgICAgICAgICAgICAgID0+IDEyNzczMTE1NzUsCiAgICAgICAgICAgIExvY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0+ICJsb2NrIiwKICAgICAgICAgICAgTWltZVR5cGUgICAgICAgICAgICAgICAgICAgICAgICAgPT4gInRleHQvcGxhaW4iLAogICAgICAgICAgICBPd25lciAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAiQWdlbnQxIiwKICAgICAgICAgICAgUHJpb3JpdHkgICAgICAgICAgICAgICAgICAgICAgICAgPT4gIjMgbm9ybWFsIiwKICAgICAgICAgICAgUHJpb3JpdHlDb2xvciAgICAgICAgICAgICAgICAgICAgPT4gIiNjZGNkY2QiLAogICAgICAgICAgICBRdWV1ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAiSnVuayIsCiAgICAgICAgICAgIFJlc3BvbnNpYmxlICAgICAgICAgICAgICAgICAgICAgID0+ICJBZ2VudDEiLAogICAgICAgICAgICBTZW5kZXJUeXBlICAgICAgICAgICAgICAgICAgICAgICA9PiAiY3VzdG9tZXIiLAogICAgICAgICAgICBTb2x1dGlvblRpbWUgICAgICAgICAgICAgICAgICAgICA9PiAtMTI5NiwKICAgICAgICAgICAgU29sdXRpb25UaW1lRGVzdGluYXRpb25EYXRlICAgICAgPT4gIjIwMTAtMDYtMjMgMTE6NTE6MTQiLAogICAgICAgICAgICBTb2x1dGlvblRpbWVEZXN0aW5hdGlvblRpbWUgICAgICA9PiAxMjc3MzExODc0LAogICAgICAgICAgICBTb2x1dGlvblRpbWVFc2NhbGF0aW9uICAgICAgICAgICA9PiAxLAogICAgICAgICAgICBTb2x1dGlvblRpbWVXb3JraW5nVGltZSAgICAgICAgICA9PiAtMTI2MCwKICAgICAgICAgICAgU3RhdGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gIm9wZW4iLAogICAgICAgICAgICBTdWJqZWN0ICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAiT3BlbiBUaWNrZXQgVGVzdCIsCiAgICAgICAgICAgIFRpY2tldElEICAgICAgICAgICAgICAgICAgICAgICAgID0+IDE3NiwKICAgICAgICAgICAgVGlja2V0TnVtYmVyICAgICAgICAgICAgICAgICAgICAgPT4gMjAxMDA2MjMxMDAwMDAxNSwKICAgICAgICAgICAgVGl0bGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gIk9wZW4gVGlja2V0IFRlc3QiLAogICAgICAgICAgICBUbyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAiSnVuayIsCiAgICAgICAgICAgIFR5cGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0+ICJJbmNpZGVudCIsCiAgICAgICAgICAgIFVudGlsVGltZSAgICAgICAgICAgICAgICAgICAgICAgID0+IDAsCiAgICAgICAgICAgIFVwZGF0ZVRpbWUgICAgICAgICAgICAgICAgICAgICAgID0+IC0xMjk1LAogICAgICAgICAgICBVcGRhdGVUaW1lRGVzdGluYXRpb25EYXRlICAgICAgICA9PiAiMjAxMC0wNi0yMyAxMTo1MToxNSIsCiAgICAgICAgICAgIFVwZGF0ZVRpbWVEZXN0aW5hdGlvblRpbWUgICAgICAgID0+IDEyNzczMTE4NzUsCiAgICAgICAgICAgIFVwZGF0ZVRpbWVFc2NhbGF0aW9uICAgICAgICAgICAgID0+IDEsCiAgICAgICAgICAgIFVwZGF0ZVRpbWVXb3JraW5nVGltZSAgICAgICAgICAgID0+IC0xMjYwLAogICAgICAgICAgICBTZWVuICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAxLCAjIG9ubHkgb24gb3RycyAzLnggZnJhbWV3b3JrCiAgICAgICAgfSwKICAgICk7Cgo9Y3V0CgpzdWIgUmVzcG9uc2libGVWaWV3IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBkZWZpbmUgZmlsdGVyCiAgICBteSAlRmlsdGVycyA9ICgKICAgICAgICBBbGwgPT4gewogICAgICAgICAgICBOYW1lICAgPT4gJ0FsbCcsCiAgICAgICAgICAgIFByaW8gICA9PiAxMDAwLAogICAgICAgICAgICBTZWFyY2ggPT4gewogICAgICAgICAgICAgICAgU3RhdGVUeXBlICAgICAgPT4gJ09wZW4nLAogICAgICAgICAgICAgICAgUmVzcG9uc2libGVJRHMgPT4gWyAkUGFyYW17VXNlcklEfSBdLAogICAgICAgICAgICAgICAgT3JkZXJCeSAgICAgICAgPT4gJFBhcmFte09yZGVyQnl9LAogICAgICAgICAgICAgICAgU29ydEJ5ICAgICAgICAgPT4gJFBhcmFte1NvcnRCeX0sCiAgICAgICAgICAgICAgICBVc2VySUQgICAgICAgICA9PiAxLAogICAgICAgICAgICAgICAgUGVybWlzc2lvbiAgICAgPT4gJ3JvJywKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIE5ldyA9PiB7CiAgICAgICAgICAgIE5hbWUgICA9PiAnTmV3IEFydGljbGUnLAogICAgICAgICAgICBQcmlvICAgPT4gMTAwMSwKICAgICAgICAgICAgU2VhcmNoID0+IHsKICAgICAgICAgICAgICAgIFN0YXRlVHlwZSAgICAgID0+ICdPcGVuJywKICAgICAgICAgICAgICAgIFJlc3BvbnNpYmxlSURzID0+IFsgJFBhcmFte1VzZXJJRH0gXSwKICAgICAgICAgICAgICAgIFRpY2tldEZsYWcgICAgID0+IHsKICAgICAgICAgICAgICAgICAgICBTZWVuID0+IDEsCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgVGlja2V0RmxhZ1VzZXJJRCA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgICAgIE9yZGVyQnkgICAgICAgICAgPT4gJFBhcmFte09yZGVyQnl9LAogICAgICAgICAgICAgICAgU29ydEJ5ICAgICAgICAgICA9PiAkUGFyYW17U29ydEJ5fSwKICAgICAgICAgICAgICAgIFVzZXJJRCAgICAgICAgICAgPT4gMSwKICAgICAgICAgICAgICAgIFBlcm1pc3Npb24gICAgICAgPT4gJ3JvJywKICAgICAgICAgICAgfSwKICAgICAgICB9LAogICAgICAgIFJlbWluZGVyID0+IHsKICAgICAgICAgICAgTmFtZSAgID0+ICdQZW5kaW5nJywKICAgICAgICAgICAgUHJpbyAgID0+IDEwMDIsCiAgICAgICAgICAgIFNlYXJjaCA9PiB7CiAgICAgICAgICAgICAgICBTdGF0ZVR5cGUgICAgICA9PiBbICdwZW5kaW5nIHJlbWluZGVyJywgJ3BlbmRpbmcgYXV0bycgXSwKICAgICAgICAgICAgICAgIFJlc3BvbnNpYmxlSURzID0+IFsgJFBhcmFte1VzZXJJRH0gXSwKICAgICAgICAgICAgICAgIE9yZGVyQnkgICAgICAgID0+ICRQYXJhbXtPcmRlckJ5fSwKICAgICAgICAgICAgICAgIFNvcnRCeSAgICAgICAgID0+ICRQYXJhbXtTb3J0Qnl9LAogICAgICAgICAgICAgICAgVXNlcklEICAgICAgICAgPT4gMSwKICAgICAgICAgICAgICAgIFBlcm1pc3Npb24gICAgID0+ICdybycsCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICBSZW1pbmRlclJlYWNoZWQgPT4gewogICAgICAgICAgICBOYW1lICAgPT4gJ1JlbWluZGVyIFJlYWNoZWQnLAogICAgICAgICAgICBQcmlvICAgPT4gMTAwMywKICAgICAgICAgICAgU2VhcmNoID0+IHsKICAgICAgICAgICAgICAgIFN0YXRlVHlwZSAgICAgICAgICAgICAgICAgICAgID0+IFsncGVuZGluZyByZW1pbmRlciddLAogICAgICAgICAgICAgICAgVGlja2V0UGVuZGluZ1RpbWVPbGRlck1pbnV0ZXMgPT4gMSwKICAgICAgICAgICAgICAgIFJlc3BvbnNpYmxlSURzICAgICAgICAgICAgICAgID0+IFsgJFBhcmFte1VzZXJJRH0gXSwKICAgICAgICAgICAgICAgIE9yZGVyQnkgICAgICAgICAgICAgICAgICAgICAgID0+ICRQYXJhbXtPcmRlckJ5fSwKICAgICAgICAgICAgICAgIFNvcnRCeSAgICAgICAgICAgICAgICAgICAgICAgID0+ICRQYXJhbXtTb3J0Qnl9LAogICAgICAgICAgICAgICAgVXNlcklEICAgICAgICAgICAgICAgICAgICAgICAgPT4gMSwKICAgICAgICAgICAgICAgIFBlcm1pc3Npb24gICAgICAgICAgICAgICAgICAgID0+ICdybycsCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICk7CgogICAgaWYgKCAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpLT5HZXQoJ1RpY2tldDo6UmVzcG9uc2libGUnKSApIHsKCiAgICAgICAgIyBnZXQgdGlja2V0IG9iamVjdAogICAgICAgIG15ICRUaWNrZXRPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VGlja2V0Jyk7CgogICAgICAgICMgZG8gc2hvd24gdGlja2V0cyBsb29rdXAKICAgICAgICBteSAkTGltaXQgPSAkUGFyYW17TGltaXR9IHx8IDEwMDsKICAgICAgICBpZiAoICRQYXJhbXtGaWx0ZXJ9ICkgewogICAgICAgICAgICBteSBAVmlld2FibGVUaWNrZXRzID0gJFRpY2tldE9iamVjdC0+VGlja2V0U2VhcmNoKAogICAgICAgICAgICAgICAgJXsgJEZpbHRlcnN7ICRQYXJhbXtGaWx0ZXJ9IH0tPntTZWFyY2h9IH0sCiAgICAgICAgICAgICAgICBMaW1pdCAgPT4gJExpbWl0LAogICAgICAgICAgICAgICAgUmVzdWx0ID0+ICdBUlJBWScsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIG15IEBMaXN0OwogICAgICAgICAgICBUSUNLRVRJRDoKICAgICAgICAgICAgZm9yIG15ICRUaWNrZXRJRCAoQFZpZXdhYmxlVGlja2V0cykgewogICAgICAgICAgICAgICAgbmV4dCBUSUNLRVRJRCBpZiAhJFRpY2tldElEOwogICAgICAgICAgICAgICAgbXkgJUFydGljbGUgPSAkU2VsZi0+VGlja2V0TGlzdCgKICAgICAgICAgICAgICAgICAgICBUaWNrZXRJRCA9PiAkVGlja2V0SUQsCiAgICAgICAgICAgICAgICAgICAgVXNlcklEICAgPT4gJFBhcmFte1VzZXJJRH0KICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICBuZXh0IFRJQ0tFVElEIGlmICElQXJ0aWNsZTsKICAgICAgICAgICAgICAgIHB1c2ggQExpc3QsIFwlQXJ0aWNsZTsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZiAoICFATGlzdCApIHsKICAgICAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIlRoZXJlIGFyZSBubyByZXNwb25zaWJsZSBmb3IgdGlja2V0cyB1bmRlciAkUGFyYW17RmlsdGVyfSBmaWx0ZXIgIgogICAgICAgICAgICAgICAgICAgICAgICAuICJjYXRlZ29yeSIsCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHJldHVybiBATGlzdDsKICAgICAgICB9CgogICAgICAgICMgZG8gTmF2QmFyIGxvb2t1cAogICAgICAgIG15IEBTdGF0ZXM7CiAgICAgICAgZm9yIG15ICRGaWx0ZXIgKCBzb3J0IGtleXMgJUZpbHRlcnMgKSB7CiAgICAgICAgICAgIG15ICRDb3VudCA9ICRUaWNrZXRPYmplY3QtPlRpY2tldFNlYXJjaCgKICAgICAgICAgICAgICAgICV7ICRGaWx0ZXJzeyRGaWx0ZXJ9LT57U2VhcmNofSB9LAogICAgICAgICAgICAgICAgUmVzdWx0ID0+ICdDT1VOVCcsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIG15ICRDb3VudE5ldyA9ICRUaWNrZXRPYmplY3QtPlRpY2tldFNlYXJjaCgKICAgICAgICAgICAgICAgICV7ICRGaWx0ZXJzeyRGaWx0ZXJ9LT57U2VhcmNofSB9LAogICAgICAgICAgICAgICAgUmVzdWx0ICAgICA9PiAnQ09VTlQnLAogICAgICAgICAgICAgICAgVGlja2V0RmxhZyA9PiB7CiAgICAgICAgICAgICAgICAgICAgU2VlbiA9PiAxLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIFRpY2tldEZsYWdVc2VySUQgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgICk7CiAgICAgICAgICAgICRDb3VudE5ldyA9ICRDb3VudCAtICRDb3VudE5ldzsKCiAgICAgICAgICAgIHB1c2ggQFN0YXRlcywgewogICAgICAgICAgICAgICAgU3RhdGVUeXBlICAgICAgICAgICAgICAgICAgICAgID0+ICRGaWx0ZXIsCiAgICAgICAgICAgICAgICBGaWx0ZXJOYW1lICAgICAgICAgICAgICAgICAgICAgPT4gJEZpbHRlcnN7JEZpbHRlcn0tPntOYW1lfSwKICAgICAgICAgICAgICAgIE51bWJlck9mVGlja2V0cyAgICAgICAgICAgICAgICA9PiAkQ291bnQsCiAgICAgICAgICAgICAgICBOdW1iZXJPZlRpY2tldHNXaXRoTmV3TWVzc2FnZXMgPT4gJENvdW50TmV3LAogICAgICAgICAgICB9OwogICAgICAgIH0KICAgICAgICByZXR1cm4gQFN0YXRlczsKICAgIH0KICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgTWVzc2FnZSAgPT4gJ1RpY2tldCByZXNwb25zaWJsZSBmZWF0dXJlIGlzIG5vdCBlbmFibGUgaW4gc3lzdGVtIGNvbmZpZ3VyYXRpb24gJwogICAgICAgICAgICAuICdQbGVhc2UgY29udGFjdCBhZG1pbicsCiAgICApOwogICAgcmV0dXJuIC0xOwp9Cgo9aXRlbSBRdWV1ZVZpZXcoKQoKR2V0IHRoZSBudW1iZXIgb2Ygdmlld2FibGUgdGlja2V0cyBwZXIgcXVldWUgYXMgd2VsbCBhcyBiYXNpYyBxdWV1ZSBpbmZvcm1hdGlvbiwgb3IgbGFzdCBjdXN0b21lcgphcnRpY2xlIGluZm9ybWF0aW9uIGZyb20gZWFjaCB0aWNrZXQgd2l0aGluIGFuIHNwZWNpZmllZCBxdWV1ZSwgaWYgdGhlICJRdWV1ZSIgYXJndW1lbnQgaXMKc3BlY2lmaWVkLgoKICAgIG15IEBSZXN1bHQgPSAkaVBob25lT2JqZWN0LT5RdWV1ZVZpZXcoCiAgICAgICAgVXNlcklEICA9PiAxLAoKICAgICAgICAjIE9yZGVyQnkgYW5kIFNvcnRCeSAob3B0aW9uYWwpCiAgICAgICAgT3JkZXJCeSA9PiAnRG93bicsICAjIERvd258VXAKICAgICAgICBTb3J0QnkgID0+ICdBZ2UnLCAgICMgT3duZXJ8UmVzcG9uc2libGV8Q3VzdG9tZXJJRHxTdGF0ZXxUaWNrZXROdW1iZXJ8UXVldWV8UHJpb3JpdHl8QWdlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIFR5cGV8TG9ja3xUaXRsZXxTZXJ2aWNlfFNMQXxQZW5kaW5nVGltZXxFc2NhbGF0aW9uVGltZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIyBFc2NhbGF0aW9uVXBkYXRlVGltZXxFc2NhbGF0aW9uUmVzcG9uc2VUaW1lfEVzY2FsYXRpb25Tb2x1dGlvblRpbWUKICAgICk7CgogICAgI2EgcmVzdWx0IGNvdWxkIGJlCgogICAgQFJlc3VsdCA9ICgKICAgICAgICB7CiAgICAgICAgICAgIFF1ZXVlTmFtZSAgICAgICAgICAgICAgICAgICAgICA9PiAiSnVuayIsCiAgICAgICAgICAgIE51bWJlck9mVGlja2V0cyAgICAgICAgICAgICAgICA9PiAyLAogICAgICAgICAgICBOdW1iZXJPZlRpY2tldHNXaXRoTmV3TWVzc2FnZXMgPT4gMCwKICAgICAgICAgICAgUXVldWVJRCAgICAgICAgICAgICAgICAgICAgICAgID0+IDMsCiAgICAgICAgICAgIENvbW1lbnQgICAgICAgICAgICAgICAgICAgICAgICA9PiAiQWxsIGp1bmsgdGlja2V0cy4iCiAgICAgICAgfSwKICAgICAgICB7CiAgICAgICAgICAgIFF1ZXVlTmFtZSAgICAgICAgICAgICAgICAgICAgICA9PiAiTWlzYyIsCiAgICAgICAgICAgIE51bWJlck9mVGlja2V0cyAgICAgICAgICAgICAgICA9PiAxLAogICAgICAgICAgICBOdW1iZXJPZlRpY2tldHNXaXRoTmV3TWVzc2FnZXMgPT4gMCwKICAgICAgICAgICAgUXVldWVJRCAgICAgICAgICAgICAgICAgICAgICAgID0+IDQsCiAgICAgICAgICAgIENvbW1lbnQgICAgICAgICAgICAgICAgICAgICAgICA9PiAiQWxsIG1pc2MgdGlja2V0cy4iCiAgICAgICAgfSwKICAgICk7CgogICAgbXkgQFJlc3VsdCA9ICRpUGhvbmVPYmplY3QtPlF1ZXVlVmlldygKICAgICAgICBVc2VySUQgICA9PiAxLAogICAgICAgIFF1ZXVlSUQgID0+IDQsCgogICAgICAgICNMaW1pdCAob3B0aW9uYWwpIHNldCB0byAxMDAgYnkgZGVmYXVsdCwgaWYgbm90IHNwZWNpZmllZAogICAgICAgIExpbWl0ICAgID0+IDUwLAoKICAgICAgICAjIE9yZGVyQnkgYW5kIFNvcnRCeSAob3B0aW9uYWwpCiAgICAgICAgT3JkZXJCeSAgPT4gJ0Rvd24nLCAgIyBEb3dufFVwCiAgICAgICAgU29ydEJ5ICAgPT4gJ0FnZScsICAgIyBPd25lcnxSZXNwb25zaWJsZXxDdXN0b21lcklEfFN0YXRlfFRpY2tldE51bWJlcnxRdWV1ZXxQcmlvcml0eXxBZ2UKICAgICAgICAgICAgICAgICAgICAgICAgICAgICMgVHlwZXxMb2NrfFRpdGxlfFNlcnZpY2V8U0xBfFBlbmRpbmdUaW1lfEVzY2FsYXRpb25UaW1lCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAjIEVzY2FsYXRpb25VcGRhdGVUaW1lfEVzY2FsYXRpb25SZXNwb25zZVRpbWV8RXNjYWxhdGlvblNvbHV0aW9uVGltZQogICAgKTsKCiAgICAjYSByZXN1bHQgY291bGQgYmUKCiAgICBAUmVzdWx0ID0gKAogICAgICAgIHsKICAgICAgICAgICAgQWdlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gMTU5NiwKICAgICAgICAgICAgQXJ0aWNsZUlEICAgICAgICAgICAgICAgICAgICAgICAgPT4gOTIzLAogICAgICAgICAgICBBcnRpY2xlVHlwZSAgICAgICAgICAgICAgICAgICAgICA9PiAicGhvbmUiLAogICAgICAgICAgICBCb2R5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAiVGhpcyBpcyBhbiBvcGVuIHRpY2tldCIsCiAgICAgICAgICAgIENoYXJzZXQgICAgICAgICAgICAgICAgICAgICAgICAgID0+ICJ1dGYtOCIsCiAgICAgICAgICAgIENvbnRlbnRDaGFyc2V0ICAgICAgICAgICAgICAgICAgID0+ICJ1dGYtOCIsCiAgICAgICAgICAgIENvbnRlbnRUeXBlICAgICAgICAgICAgICAgICAgICAgID0+ICJ0ZXh0L3BsYWluOyIsCiAgICAgICAgICAgIGNoYXJzZXQgICAgICAgICAgICAgICAgICAgICAgICAgID0+ICJ1dGYtOCIsCiAgICAgICAgICAgIENyZWF0ZWQgICAgICAgICAgICAgICAgICAgICAgICAgID0+ICIyMDEwLTA2LTIzIDExOjQ2OjE1IiwKICAgICAgICAgICAgQ3JlYXRlZEJ5ICAgICAgICAgICAgICAgICAgICAgICAgPT4gMSwKICAgICAgICAgICAgRmlyc3RSZXNwb25zZVRpbWUgICAgICAgICAgICAgICAgPT4gLTEyOTYsCiAgICAgICAgICAgIEZpcnN0UmVzcG9uc2VUaW1lRGVzdGluYXRpb25EYXRlID0+ICIyMDEwLTA2LTIzIDExOjUxOjE0IiwKICAgICAgICAgICAgRmlyc3RSZXNwb25zZVRpbWVEZXN0aW5hdGlvblRpbWUgPT4gMTI3NzMxMTg3NCwKICAgICAgICAgICAgRmlyc3RSZXNwb25zZVRpbWVFc2NhbGF0aW9uICAgICAgPT4gMSwKICAgICAgICAgICAgRmlyc3RSZXNwb25zZVRpbWVXb3JraW5nVGltZSAgICAgPT4gLTEyNjAsCiAgICAgICAgICAgIEZyb20gICAgICAgICAgICAgICAgICAgICAgICAgICAgID0+ICJjdXN0b21lckBvdHJzLm9yZyIsCiAgICAgICAgICAgIEluY29taW5nVGltZSAgICAgICAgICAgICAgICAgICAgID0+IDEyNzczMTE1NzUsCiAgICAgICAgICAgIExvY2sgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0+ICJsb2NrIiwKICAgICAgICAgICAgTWltZVR5cGUgICAgICAgICAgICAgICAgICAgICAgICAgPT4gInRleHQvcGxhaW4iLAogICAgICAgICAgICBPd25lciAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAiQWdlbnQxIiwKICAgICAgICAgICAgUHJpb3JpdHkgICAgICAgICAgICAgICAgICAgICAgICAgPT4gIjMgbm9ybWFsIiwKICAgICAgICAgICAgUHJpb3JpdHlDb2xvciAgICAgICAgICAgICAgICAgICAgPT4gIiNjZGNkY2QiLAogICAgICAgICAgICBRdWV1ZSAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAiTWlzYyIsCiAgICAgICAgICAgIFJlc3BvbnNpYmxlICAgICAgICAgICAgICAgICAgICAgID0+ICJBZ2VudDEiLAogICAgICAgICAgICBTZW5kZXJUeXBlICAgICAgICAgICAgICAgICAgICAgICA9PiAiY3VzdG9tZXIiLAogICAgICAgICAgICBTb2x1dGlvblRpbWUgICAgICAgICAgICAgICAgICAgICA9PiAtMTI5NiwKICAgICAgICAgICAgU29sdXRpb25UaW1lRGVzdGluYXRpb25EYXRlICAgICAgPT4gIjIwMTAtMDYtMjMgMTE6NTE6MTQiLAogICAgICAgICAgICBTb2x1dGlvblRpbWVEZXN0aW5hdGlvblRpbWUgICAgICA9PiAxMjc3MzExODc0LAogICAgICAgICAgICBTb2x1dGlvblRpbWVFc2NhbGF0aW9uICAgICAgICAgICA9PiAxLAogICAgICAgICAgICBTb2x1dGlvblRpbWVXb3JraW5nVGltZSAgICAgICAgICA9PiAtMTI2MCwKICAgICAgICAgICAgU3RhdGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gIm9wZW4iLAogICAgICAgICAgICBTdWJqZWN0ICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAiT3BlbiBUaWNrZXQgVGVzdCIsCiAgICAgICAgICAgIFRpY2tldElEICAgICAgICAgICAgICAgICAgICAgICAgID0+IDE3NiwKICAgICAgICAgICAgVGlja2V0TnVtYmVyICAgICAgICAgICAgICAgICAgICAgPT4gMjAxMDA2MjMxMDAwMDAxNSwKICAgICAgICAgICAgVGl0bGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgPT4gIk9wZW4gVGlja2V0IFRlc3QiLAogICAgICAgICAgICBUbyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAiSnVuayIsCiAgICAgICAgICAgIFR5cGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgID0+ICJJbmNpZGVudCIsCiAgICAgICAgICAgIFVudGlsVGltZSAgICAgICAgICAgICAgICAgICAgICAgID0+IDAsCiAgICAgICAgICAgIFVwZGF0ZVRpbWUgICAgICAgICAgICAgICAgICAgICAgID0+IC0xMjk1LAogICAgICAgICAgICBVcGRhdGVUaW1lRGVzdGluYXRpb25EYXRlICAgICAgICA9PiAiMjAxMC0wNi0yMyAxMTo1MToxNSIsCiAgICAgICAgICAgIFVwZGF0ZVRpbWVEZXN0aW5hdGlvblRpbWUgICAgICAgID0+IDEyNzczMTE4NzUsCiAgICAgICAgICAgIFVwZGF0ZVRpbWVFc2NhbGF0aW9uICAgICAgICAgICAgID0+IDEsCiAgICAgICAgICAgIFVwZGF0ZVRpbWVXb3JraW5nVGltZSAgICAgICAgICAgID0+IC0xMjYwLAogICAgICAgICAgICBTZWVuICAgICAgICAgICAgICAgICAgICAgICAgICAgICA9PiAxLCAjIG9ubHkgb24gb3RycyAzLnggZnJhbWV3b3JrCiAgICAgICAgfSwKICAgICk7Cgo9Y3V0CgpzdWIgUXVldWVWaWV3IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgQFZpZXdhYmxlTG9ja0lEcyA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2NrJyktPkxvY2tWaWV3YWJsZUxvY2soIFR5cGUgPT4gJ0lEJyApOwoKICAgIG15IEBWaWV3YWJsZVN0YXRlSURzID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlN0YXRlJyktPlN0YXRlR2V0U3RhdGVzQnlUeXBlKAogICAgICAgIFR5cGUgICA9PiAnVmlld2FibGUnLAogICAgICAgIFJlc3VsdCA9PiAnSUQnLAogICAgKTsKCiAgICAjIGdldCB0aWNrZXQgb2JqZWN0CiAgICBteSAkVGlja2V0T2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlRpY2tldCcpOwoKICAgICMgZG8gc2hvd24gdGlja2V0cyBsb29rdXAKICAgIG15ICRMaW1pdCA9ICRQYXJhbXtMaW1pdH0gfHwgMTAwOwogICAgaWYgKCAkUGFyYW17UXVldWVJRH0gKSB7CiAgICAgICAgbXkgQFZpZXdhYmxlVGlja2V0cyA9ICRUaWNrZXRPYmplY3QtPlRpY2tldFNlYXJjaCgKCiAgICAgICAgICAgIE9yZGVyQnkgICAgPT4gJFBhcmFte09yZGVyQnl9LAogICAgICAgICAgICBTb3J0QnkgICAgID0+ICRQYXJhbXtTb3J0Qnl9LAogICAgICAgICAgICBTdGF0ZUlEcyAgID0+IFxAVmlld2FibGVTdGF0ZUlEcywKICAgICAgICAgICAgTG9ja0lEcyAgICA9PiBcQFZpZXdhYmxlTG9ja0lEcywKICAgICAgICAgICAgUXVldWVJRHMgICA9PiBbICRQYXJhbXtRdWV1ZUlEfSBdLAogICAgICAgICAgICBQZXJtaXNzaW9uID0+ICdydycsCiAgICAgICAgICAgIFVzZXJJRCAgICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgIExpbWl0ICAgICAgPT4gJExpbWl0LAogICAgICAgICAgICBSZXN1bHQgICAgID0+ICdBUlJBWScsCiAgICAgICAgKTsKICAgICAgICBteSBATGlzdDsKICAgICAgICBUSUNLRVRJRDoKICAgICAgICBmb3IgbXkgJFRpY2tldElEIChAVmlld2FibGVUaWNrZXRzKSB7CiAgICAgICAgICAgIG5leHQgVElDS0VUSUQgaWYgISRUaWNrZXRJRDsKICAgICAgICAgICAgbXkgJUFydGljbGUgPSAkU2VsZi0+VGlja2V0TGlzdCgKICAgICAgICAgICAgICAgIFRpY2tldElEID0+ICRUaWNrZXRJRCwKICAgICAgICAgICAgICAgIFVzZXJJRCAgID0+ICRQYXJhbXtVc2VySUR9CiAgICAgICAgICAgICk7CiAgICAgICAgICAgIG5leHQgVElDS0VUSUQgaWYgISVBcnRpY2xlOwogICAgICAgICAgICBwdXNoIEBMaXN0LCBcJUFydGljbGU7CiAgICAgICAgfQogICAgICAgIHJldHVybiBATGlzdDsKICAgIH0KCiAgICAjIGdldCBxdWV1ZSBvYmplY3QKICAgIG15ICRRdWV1ZU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpRdWV1ZScpOwoKICAgIG15ICVBbGxRdWV1ZXMgPSAkUXVldWVPYmplY3QtPlF1ZXVlTGlzdCggVmFsaWQgPT4gMCApOwoKICAgIG15IEBRdWV1ZXM7CiAgICBteSAlUXVldWVTdW07CiAgICBRVUVVRUlEOgogICAgZm9yIG15ICRRdWV1ZUlEICggc29ydCBrZXlzICVBbGxRdWV1ZXMgKSB7CiAgICAgICAgbXkgJVF1ZXVlID0gJFF1ZXVlT2JqZWN0LT5RdWV1ZUdldCgKICAgICAgICAgICAgSUQgPT4gJFF1ZXVlSUQsCiAgICAgICAgKTsKCiAgICAgICAgbXkgJENvdW50ID0gJFRpY2tldE9iamVjdC0+VGlja2V0U2VhcmNoKAogICAgICAgICAgICBTdGF0ZUlEcyA9PiBcQFZpZXdhYmxlU3RhdGVJRHMsCiAgICAgICAgICAgIExvY2tJRHMgID0+IFxAVmlld2FibGVMb2NrSURzLAogICAgICAgICAgICBRdWV1ZUlEcyA9PiBbJFF1ZXVlSURdLAoKICAgICAgICAgICAgUGVybWlzc2lvbiA9PiAncncnLAogICAgICAgICAgICBVc2VySUQgICAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICBSZXN1bHQgICAgID0+ICdDT1VOVCcsCiAgICAgICAgICAgIExpbWl0ICAgICAgPT4gMTAwMCwKICAgICAgICApOwogICAgICAgIG5leHQgUVVFVUVJRCBpZiAhJENvdW50OwoKICAgICAgICBteSAkQ291bnROZXcgPSAkVGlja2V0T2JqZWN0LT5UaWNrZXRTZWFyY2goCiAgICAgICAgICAgIFN0YXRlSURzID0+IFxAVmlld2FibGVTdGF0ZUlEcywKICAgICAgICAgICAgTG9ja0lEcyAgPT4gXEBWaWV3YWJsZUxvY2tJRHMsCiAgICAgICAgICAgIFF1ZXVlSURzID0+IFskUXVldWVJRF0sCgogICAgICAgICAgICBUaWNrZXRGbGFnID0+IHsKICAgICAgICAgICAgICAgIFNlZW4gPT4gMSwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgVGlja2V0RmxhZ1VzZXJJRCA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgUGVybWlzc2lvbiAgICAgICA9PiAncncnLAogICAgICAgICAgICBVc2VySUQgICAgICAgICAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICBSZXN1bHQgICAgICAgICAgID0+ICdDT1VOVCcsCiAgICAgICAgICAgIExpbWl0ICAgICAgICAgICAgPT4gMTAwMCwKICAgICAgICApOwogICAgICAgICRDb3VudE5ldyA9ICRDb3VudCAtICRDb3VudE5ldzsKCiAgICAgICAgcHVzaCBAUXVldWVzLCB7CiAgICAgICAgICAgIFF1ZXVlSUQgICA9PiAkUXVldWVJRCwKICAgICAgICAgICAgUXVldWVOYW1lID0+ICRRdWV1ZXtOYW1lfSwKICAgICAgICAgICAgQ29tbWVudCAgID0+ICRRdWV1ZXtDb21tZW50fSwKCiAgICAgICAgICAgIE51bWJlck9mVGlja2V0cyAgICAgICAgICAgICAgICA9PiAkQ291bnQsCiAgICAgICAgICAgIE51bWJlck9mVGlja2V0c1dpdGhOZXdNZXNzYWdlcyA9PiAkQ291bnROZXcsCiAgICAgICAgfTsKICAgIH0KCiAgICByZXR1cm4gQFF1ZXVlczsKfQoKMTsKCj1iYWNrCgo9aGVhZDEgVEVSTVMgQU5EIENPTkRJVElPTlMKClRoaXMgc29mdHdhcmUgaXMgcGFydCBvZiB0aGUgT1RSUyBwcm9qZWN0IChMPGh0dHBzOi8vb3Rycy5vcmcvPikuCgpUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQp0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKZGlkIG5vdCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIEw8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dD4uCgo9Y3V0Cg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE4IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6U3lzdGVtOjppUGhvbmVIYW5kbGU6OlNjcmVlbkFjdGlvbjsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCnVzZSBLZXJuZWw6OlN5c3RlbTo6VmFyaWFibGVDaGVjayBxdyg6YWxsKTsKCm91ciBAT2JqZWN0RGVwZW5kZW5jaWVzID0gKAogICAgJ0tlcm5lbDo6Q29uZmlnJywKICAgICdLZXJuZWw6OlN5c3RlbTo6Q2hlY2tJdGVtJywKICAgICdLZXJuZWw6OlN5c3RlbTo6Q3VzdG9tZXJVc2VyJywKICAgICdLZXJuZWw6OlN5c3RlbTo6RHluYW1pY0ZpZWxkJywKICAgICdLZXJuZWw6OlN5c3RlbTo6RHluYW1pY0ZpZWxkOjpCYWNrZW5kJywKICAgICdLZXJuZWw6OlN5c3RlbTo6TG9nJywKICAgICdLZXJuZWw6OlN5c3RlbTo6UXVldWUnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpTdGF0ZScsCiAgICAnS2VybmVsOjpTeXN0ZW06OlRpY2tldCcsCiAgICAnS2VybmVsOjpTeXN0ZW06OlRpbWUnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpVc2VyJywKKTsKCj1oZWFkMSBOQU1FCgpLZXJuZWw6OlN5c3RlbTo6aVBob25lSGFuZGxlOjpTY3JlZW5BY3Rpb24gLSBzdWIgbW9kdWxlIG9mIEtlcm5lbDo6U3lzdGVtOjppUGhvbmVIYW5kbGUKCj1oZWFkMSBTWU5PUFNJUwoKU2NyZWVuQWN0aW9uIGNvbW1vbiBmdW5jdGlvbnMuCgo9aGVhZDEgUFVCTElDIElOVEVSRkFDRQoKPW92ZXIgNAoKPWN1dAoKPWl0ZW0gU2NyZWVuQWN0aW9ucygpClBlcmZvcm1zIGEgdGlja2V0IGFjdGlvbiAoQWN0aW9ucyBpbmNsdWRlIFBob25lLCBOb3RlLCBDbG9zZSwgQ29tcG9zZSBvciBNb3ZlKQoKUGhvbmUgICAoTmV3IHBob25lIHRpY2tldCkKTm90ZSAgICAoQWRkIGEgbm90ZSB0byBhIFRpY2tldCkKQ2xvc2UgICAoQ2xvc2UgYSB0aWNrZXQpCkNvbXBvc2UgKFJlcGx5IG9yIHJlc3BvbnNlIGEgdGlja2V0KQpNb3ZlICAgIChDaGFuZ2UgdGlja2V0IHF1ZXVlKQoKVGhlIGFyZ3VtZW50cyB0YWtlbiBkZXBlbmQgb24gdGhlIHJlc3VsdHMgb2YgU2NyZWVuQ29uZmlnKCkKClRoZSByZXN1bHQgaXMgdGhlIFRpY2tldElEIGZvciBBY3Rpb24gUGhvbmUgb3IgQXJ0aWNsZUlEIGZvciB0aGUgb3RoZXIgYWN0aW9ucwoKICAgIG15IEBSZXN1bHQgPSAkaVBob25lT2JqZWN0LT5TY3JlZW5BY3Rpb25zKAogICAgICAgIEFjdGlvbiAgICAgICAgICAgICAgPT4gIlBob25lIiwKICAgICAgICBTdWJqZWN0ICAgICAgICAgICAgID0+ICJpUGhvbmUgVGlja2V0IiwKICAgICAgICBDdXN0b21lcklEICAgICAgICAgID0+ICJvdHJzIiwKICAgICAgICBCb2R5ICAgICAgICAgICAgICAgID0+ICJNeSBmaXJzdCBpUGhvbmUgdGlja2V0IiwKICAgICAgICBDdXN0b21lclVzZXJMb2dpbiAgID0+ICJBYXlsYSIsCiAgICAgICAgVGltZVVuaXRzICAgICAgICAgICA9PiAxMjMsCiAgICAgICAgUXVldWVJRCAgICAgICAgICAgICA9PiAzLAogICAgICAgIE93bmVySUQgICAgICAgICAgICAgPT4gMjMsCiAgICAgICAgUmVzcG9uc2lsYmVJRCAgICAgICA9PiA0NSwKICAgICAgICBTdGF0ZUlEICAgICAgICAgICAgID0+IDQsCiAgICAgICAgUGVuZGluZ0RhdGUgICAgICAgICA9PiIyMDEwLTA3LTA5IDIzOjU0OjE4IiwKICAgICAgICBQcmlvcml0eUlEICAgICAgICAgID0+IDEsCiAgICAgICAgRHlhbm1pY0ZpZWxkX05hbWVYICA9PiAnc29tZSB2YWx1ZScsCiAgICAgICAgVXNlcklEICAgICAgICAgICAgICA9PiAxLAogICAgKTsKCiAgICAjIGEgcmVzdWx0IGNvdWxkIGJlCgogICAgQFJlc3VsdCA9ICggMjI0ICk7Cgo9Y3V0CgpzdWIgU2NyZWVuQWN0aW9ucyB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICVVc2VyUHJlZmVyZW5jZXMgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VXNlcicpLT5HZXRQcmVmZXJlbmNlcygKICAgICAgICBVc2VySUQgPT4gJFBhcmFte1VzZXJJRH0sCiAgICApOwoKICAgIGlmICgKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpLT5HZXQoJ1RpbWVab25lVXNlcicpCiAgICAgICAgJiYgJFVzZXJQcmVmZXJlbmNlc3tVc2VyVGltZVpvbmV9CiAgICAgICAgKQogICAgewogICAgICAgICRQYXJhbXtVc2VyVGltZVpvbmV9ID0gJFVzZXJQcmVmZXJlbmNlc3tVc2VyVGltZVpvbmV9IHx8IDA7CiAgICB9CgogICAgIyBtYWtlIHN1cmUgVXNlclRpbWVab25lIHBhcmFtIGlzIGRlZmluZWQKICAgICRQYXJhbXtVc2VyVGltZVpvbmV9IC8vPSAwOwoKICAgIGlmICggJFBhcmFte0FjdGlvbn0gKSB7CiAgICAgICAgbXkgJFJlc3VsdDsKICAgICAgICBpZiAoICRQYXJhbXtBY3Rpb259IGVxICdQaG9uZScgKSB7CiAgICAgICAgICAgICRSZXN1bHQgPSAkU2VsZi0+X1RpY2tldFBob25lTmV3KCVQYXJhbSk7CiAgICAgICAgICAgIGlmICgkUmVzdWx0KSB7CiAgICAgICAgICAgICAgICByZXR1cm4gJFJlc3VsdDsKICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm4gLTE7CiAgICAgICAgfQogICAgICAgIGlmICggJFBhcmFte0FjdGlvbn0gZXEgJ05vdGUnIHx8ICRQYXJhbXtBY3Rpb259IGVxICdDbG9zZScgKSB7CiAgICAgICAgICAgICRSZXN1bHQgPSAkU2VsZi0+X1RpY2tldENvbW1vbkFjdGlvbnMoJVBhcmFtKTsKICAgICAgICAgICAgaWYgKCRSZXN1bHQpIHsKICAgICAgICAgICAgICAgIHJldHVybiAkUmVzdWx0OwogICAgICAgICAgICB9CiAgICAgICAgICAgIHJldHVybiAtMTsKICAgICAgICB9CiAgICAgICAgaWYgKCAkUGFyYW17QWN0aW9ufSBlcSAnQ29tcG9zZScgKSB7CiAgICAgICAgICAgICRSZXN1bHQgPSAkU2VsZi0+X1RpY2tldENvbXBvc2UoJVBhcmFtKTsKICAgICAgICAgICAgaWYgKCRSZXN1bHQpIHsKICAgICAgICAgICAgICAgIHJldHVybiAkUmVzdWx0OwogICAgICAgICAgICB9CiAgICAgICAgICAgIHJldHVybiAtMTsKICAgICAgICB9CiAgICAgICAgaWYgKCAkUGFyYW17QWN0aW9ufSBlcSAnTW92ZScgKSB7CiAgICAgICAgICAgICRSZXN1bHQgPSAkU2VsZi0+X1RpY2tldE1vdmUoJVBhcmFtKTsKICAgICAgICAgICAgaWYgKCRSZXN1bHQpIHsKICAgICAgICAgICAgICAgIHJldHVybiAkUmVzdWx0OwogICAgICAgICAgICB9CiAgICAgICAgICAgIHJldHVybiAtMTsKICAgICAgICB9CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICdBY3Rpb24gdW5kZWZpbmVkISBleHBlY3RlZCBQaG9uZSwgTm90ZSwgQ2xvc2UsIENvbXBvc2Ugb3IgTW92ZSwgJwogICAgICAgICAgICAgICAgLiAnYnV0ICcgLiAkUGFyYW17QWN0aW9ufSAuICcgZm91bmQnLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuIC0xOwogICAgfQogICAgZWxzZSB7CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICdObyBBY3Rpb24gZ2l2ZW4hIFBsZWFzZSBjb250YWN0IHRoZSBhZG1pbi4nLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuIC0xOwogICAgfQp9CgpzdWIgX1RpY2tldFBob25lTmV3IHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBnZXQgY29uZmlnIG9iamVjdAogICAgbXkgJENvbmZpZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyk7CgogICAgJFNlbGYtPntDb25maWd9ID0gJENvbmZpZ09iamVjdC0+R2V0KCdpUGhvbmU6OkZyb250ZW5kOjpBZ2VudFRpY2tldFBob25lJyk7CgogICAgbXkgJVN0YXRlRGF0YSA9ICgpOwoKICAgICMgZ2V0IHRpY2tldCBvYmplY3QKICAgIG15ICRUaWNrZXRPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VGlja2V0Jyk7CgogICAgaWYgKCAkUGFyYW17U3RhdGVJRH0gKSB7CiAgICAgICAgJVN0YXRlRGF0YSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpTdGF0ZScpLT5TdGF0ZUdldCgKICAgICAgICAgICAgSUQgPT4gJFBhcmFte1N0YXRlSUR9LAogICAgICAgICk7CiAgICB9CgogICAgIyB0cmFuc2Zvcm0gcGVuZGluZyB0aW1lLCB0aW1lIHN0YW1wIGJhc2VkIG9uIHVzZXIgdGltZSB6b25lCiAgICBpZiAoIElzU3RyaW5nV2l0aERhdGEoICRQYXJhbXtQZW5kaW5nRGF0ZX0gKSApIHsKICAgICAgICAkUGFyYW17UGVuZGluZ0RhdGV9ID0gJFNlbGYtPl9UcmFuc2Zvcm1EYXRlU2VsZWN0aW9uKAogICAgICAgICAgICBUaW1lU3RhbXAgICAgPT4gJFBhcmFte1BlbmRpbmdEYXRlfSwKICAgICAgICAgICAgVXNlclRpbWVab25lID0+ICRQYXJhbXtVc2VyVGltZVpvbmV9LAogICAgICAgICk7CiAgICB9CgogICAgIyBnZXQgZHluYW1pYyBmaWVsZCBjb25maWcgZm9yIHRoZSBzY3JlZW4KICAgICRTZWxmLT57RHluYW1pY0ZpZWxkRmlsdGVyfSA9ICRTZWxmLT57Q29uZmlnfS0+e0R5bmFtaWNGaWVsZH07CgogICAgIyBnZXQgdGhlIGR5bmFtaWMgZmllbGRzIGZvciB0aWNrZXQgb2JqZWN0CiAgICAkU2VsZi0+e0R5bmFtaWNGaWVsZH0gPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6RHluYW1pY0ZpZWxkJyktPkR5bmFtaWNGaWVsZExpc3RHZXQoCiAgICAgICAgVmFsaWQgICAgICAgPT4gMSwKICAgICAgICBPYmplY3RUeXBlICA9PiBbICdUaWNrZXQnLCAnQXJ0aWNsZScgXSwKICAgICAgICBGaWVsZEZpbHRlciA9PiAkU2VsZi0+e0R5bmFtaWNGaWVsZEZpbHRlcn0gfHwge30sCiAgICApOwoKICAgIG15ICVEeW5hbWljRmllbGRWYWx1ZXM7CgogICAgIyBnZXQgZHluYW1pYyBmaWVsZCBiYWNrZW5kIG9iamVjdAogICAgbXkgJER5bmFtaWNGaWVsZEJhY2tlbmRPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6RHluYW1pY0ZpZWxkOjpCYWNrZW5kJyk7CgogICAgIyBjeWNsZSB0cm91Z2ggdGhlIGFjdGl2YXRlZCBEeW5hbWljIEZpZWxkcyBmb3IgdGhpcyBzY3JlZW4KICAgIERZTkFNSUNGSUVMRDoKICAgIGZvciBteSAkRHluYW1pY0ZpZWxkQ29uZmlnICggQHsgJFNlbGYtPntEeW5hbWljRmllbGR9IH0gKSB7CiAgICAgICAgbmV4dCBEWU5BTUlDRklFTEQgaWYgIUlzSGFzaFJlZldpdGhEYXRhKCREeW5hbWljRmllbGRDb25maWcpOwogICAgICAgIG5leHQgRFlOQU1JQ0ZJRUxEIGlmICFJc0hhc2hSZWZXaXRoRGF0YSggJER5bmFtaWNGaWVsZENvbmZpZy0+e0NvbmZpZ30gKTsKICAgICAgICBuZXh0IERZTkFNSUNGSUVMRCBpZiAhJER5bmFtaWNGaWVsZENvbmZpZy0+e05hbWV9OwoKICAgICAgICAjIHNraXAgYWxsIGR5bmFtaWMgZmllbGRzIHRoYXQgYXJlIG5vdCBkZXNpZ25lZCByZW5kZXIgaW4gaVBob25lIEFwcAogICAgICAgIG15ICRJc0lQaG9uZUNhcGFibGUgPSAkRHluYW1pY0ZpZWxkQmFja2VuZE9iamVjdC0+SGFzQmVoYXZpb3IoCiAgICAgICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyA9PiAkRHluYW1pY0ZpZWxkQ29uZmlnLAogICAgICAgICAgICBCZWhhdmlvciAgICAgICAgICAgPT4gJ0lzSVBob25lQ2FwYWJsZScsCiAgICAgICAgKTsKICAgICAgICBuZXh0IERZTkFNSUNGSUVMRCBpZiAhJElzSVBob25lQ2FwYWJsZTsKCiAgICAgICAgIyBleHRyYWN0IHRoZSBkeW5hbWljIGZpZWxkIHZhbHVlIGZvcm0gcGFyYW1ldGVycwogICAgICAgICREeW5hbWljRmllbGRWYWx1ZXN7ICREeW5hbWljRmllbGRDb25maWctPntOYW1lfSB9ID0gJER5bmFtaWNGaWVsZEJhY2tlbmRPYmplY3QtPklQaG9uZUZpZWxkVmFsdWVHZXQoCiAgICAgICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyA9PiAkRHluYW1pY0ZpZWxkQ29uZmlnLAogICAgICAgICAgICBUcmFuc2Zvcm1EYXRlcyAgICAgPT4gMSwKICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICk7CgogICAgICAgICMgcGVyZm9ybSB2YWxpZGF0aW9uIG9mIHRoZSBkYXRhCiAgICAgICAgbXkgJFZhbGlkYXRpb25SZXN1bHQgPSAkRHluYW1pY0ZpZWxkQmFja2VuZE9iamVjdC0+SVBob25lRmllbGRWYWx1ZVZhbGlkYXRlKAogICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgPT4gJER5bmFtaWNGaWVsZENvbmZpZywKICAgICAgICAgICAgVmFsdWUgICAgICAgICAgICAgID0+ICREeW5hbWljRmllbGRWYWx1ZXN7ICREeW5hbWljRmllbGRDb25maWctPntOYW1lfSB9LAogICAgICAgICAgICBNYW5kYXRvcnkgICAgICAgICAgPT4gJFNlbGYtPntDb25maWd9LT57RHluYW1pY0ZpZWxkfS0+eyAkRHluYW1pY0ZpZWxkQ29uZmlnLT57TmFtZX0gfSA9PSAyLAogICAgICAgICk7CgogICAgICAgIGlmICggIUlzSGFzaFJlZldpdGhEYXRhKCRWYWxpZGF0aW9uUmVzdWx0KSApIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIkNvdWxkIG5vdCBwZXJmb3JtIHZhbGlkYXRpb24gb24gZmllbGQgJER5bmFtaWNGaWVsZENvbmZpZy0+e0xhYmVsfSEiLAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQoKICAgICAgICAjIHByb3BhZ2F0ZSB2YWxpZGF0aW9uIGVycm9yCiAgICAgICAgaWYgKCAkVmFsaWRhdGlvblJlc3VsdC0+e1NlcnZlckVycm9yfSApIHsKCiAgICAgICAgICAgIG15ICRFcnJvck1lc3NhZ2UgPSAkVmFsaWRhdGlvblJlc3VsdC0+e0Vycm9yTWVzc2FnZX0KICAgICAgICAgICAgICAgIHx8ICJEeW5hbWljIGZpZWxkICREeW5hbWljRmllbGRDb25maWctPntMYWJlbH0gaW52YWxpZCI7CgogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAkRXJyb3JNZXNzYWdlLAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgIG15ICRDdXN0b21lclVzZXIgPSAkUGFyYW17Q3VzdG9tZXJVc2VyTG9naW59OwogICAgbXkgJEN1c3RvbWVySUQgPSAkUGFyYW17Q3VzdG9tZXJJRH0gfHwgJyc7CgogICAgIyByZS13cmFwIGJvZHkgaWYgZXhpc3RzCiAgICBpZiAoICRDb25maWdPYmplY3QtPkdldCgnRnJvbnRlbmQ6OlJpY2hUZXh0JykgJiYgJFBhcmFte0JvZHl9ICkgewogICAgICAgICRQYXJhbXtCb2R5fQogICAgICAgICAgICA9fiBzLyhePi4rfC57NCwkQ29uZmlnT2JqZWN0LT5HZXQoJ1RpY2tldDo6RnJvbnRlbmQ6OlRleHRBcmVhTm90ZScpfSkoPzpcc3xceikvJDFcbi9nbTsKICAgIH0KCiAgICAjIGdldCB0aW1lIG9iamVjdAogICAgbXkgJFRpbWVPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VGltZScpOwoKICAgICMgY2hlY2sgcGVuZGluZyBkYXRlCiAgICBpZiAoICRTdGF0ZURhdGF7VHlwZU5hbWV9ICYmICRTdGF0ZURhdGF7VHlwZU5hbWV9ID1+IC9ecGVuZGluZy9pICkgewogICAgICAgIGlmICggISRUaW1lT2JqZWN0LT5UaW1lU3RhbXAyU3lzdGVtVGltZSggU3RyaW5nID0+ICRQYXJhbXtQZW5kaW5nRGF0ZX0gKSApIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gJ0RhdGUgaW52YWxpZCcsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICAgICAgaWYgKAogICAgICAgICAgICAkVGltZU9iamVjdC0+VGltZVN0YW1wMlN5c3RlbVRpbWUoIFN0cmluZyA9PiAkUGFyYW17UGVuZGluZ0RhdGV9ICkKICAgICAgICAgICAgPCAkVGltZU9iamVjdC0+U3lzdGVtVGltZSgpCiAgICAgICAgICAgICkKICAgICAgICB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICdEYXRlIGludmFsaWQnLAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgICMgZ2V0IGN1c3RvbWVyIHVzZXIgIG9iamVjdAogICAgbXkgJEN1c3RvbWVyVXNlck9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpDdXN0b21lclVzZXInKTsKCiAgICAjZ2V0IGN1c3RvbWVyIGluZm8KICAgIG15ICVDdXN0b21lclVzZXJEYXRhID0gJEN1c3RvbWVyVXNlck9iamVjdC0+Q3VzdG9tZXJVc2VyRGF0YUdldCgKICAgICAgICBVc2VyID0+ICRDdXN0b21lclVzZXIsCiAgICApOwogICAgbXkgJUN1c3RvbWVyVXNlckxpc3QgPSAkQ3VzdG9tZXJVc2VyT2JqZWN0LT5DdXN0b21lclNlYXJjaCgKICAgICAgICBVc2VyTG9naW4gPT4gJEN1c3RvbWVyVXNlciwKICAgICk7CiAgICBteSAkRnJvbTsKICAgIGlmICglQ3VzdG9tZXJVc2VyTGlzdCkgewogICAgICAgIGZvciAoIHNvcnQga2V5cyAlQ3VzdG9tZXJVc2VyTGlzdCApIHsKCiAgICAgICAgICAgIGlmICggJFBhcmFte0N1c3RvbWVyVXNlckxvZ2lufSBlcSAkXyApIHsKICAgICAgICAgICAgICAgICRGcm9tID0gJEN1c3RvbWVyVXNlckxpc3R7JF99OwogICAgICAgICAgICB9CiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgJEZyb20gPSAkQ3VzdG9tZXJVc2VyOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQogICAgZWxzZSB7CiAgICAgICAgJEZyb20gPSAkQ3VzdG9tZXJVc2VyOwogICAgfQoKICAgICMgZ2V0IGNoZWNrIGl0ZW0gb2JqZWN0CiAgICBteSAkQ2hlY2tJdGVtT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkNoZWNrSXRlbScpOwoKICAgICMgY2hlY2sgZW1haWwgYWRkcmVzcwogICAgZm9yIG15ICRFbWFpbCAoIE1haWw6OkFkZHJlc3MtPnBhcnNlKCAkQ3VzdG9tZXJVc2VyRGF0YXtVc2VyRW1haWx9ICkgKSB7CiAgICAgICAgaWYgKCAhJENoZWNrSXRlbU9iamVjdC0+Q2hlY2tFbWFpbCggQWRkcmVzcyA9PiAkRW1haWwtPmFkZHJlc3MoKSApICkgewogICAgICAgICAgICBteSAkU2VydmVyRXJyb3IgPSAkQ2hlY2tJdGVtT2JqZWN0LT5DaGVja0Vycm9yKCk7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJFcnJvciBvbiBmaWVsZCBcIkZyb21cIiAgXG4gJFNlcnZlckVycm9yIiwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KICAgIGlmICggISRQYXJhbXtDdXN0b21lclVzZXJMb2dpbn0gKSB7CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICdGcm9tIGludmFsaWQ6IEZyb20gaXMgZW1wdHknLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuOwogICAgfQogICAgaWYgKCAhJFBhcmFte1N1YmplY3R9ICkgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAnU3ViamVjdCBpbnZhbGlkOiBTdWJqZWN0IGlzIGVtcHR5JywKICAgICAgICApOwogICAgICAgIHJldHVybjsKICAgIH0KICAgIGlmICggISRQYXJhbXtRdWV1ZUlEfSApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gJ0Rlc3RpbmF0aW9uIGludmFsaWQ6IERlc3RpbmF0aW9uIHF1ZXVlIGlzIGVtcHR5JywKICAgICAgICApOwogICAgICAgIHJldHVybjsKICAgIH0KICAgIGlmICgKICAgICAgICAkQ29uZmlnT2JqZWN0LT5HZXQoJ1RpY2tldDo6U2VydmljZScpCiAgICAgICAgJiYgJFBhcmFte1NMQUlEfQogICAgICAgICYmICEkUGFyYW17U2VydmljZUlEfQogICAgICAgICkKICAgIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gJ1NlcnZpY2UgaW52YWxpZDogbm8gc2VydmljZSBzZWxlY3RlZCcsCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgIyBjcmVhdGUgbmV3IHRpY2tldCwgZG8gZGIgaW5zZXJ0CiAgICBteSAkVGlja2V0SUQgPSAkVGlja2V0T2JqZWN0LT5UaWNrZXRDcmVhdGUoCiAgICAgICAgVGl0bGUgICAgICAgID0+ICRQYXJhbXtTdWJqZWN0fSwKICAgICAgICBRdWV1ZUlEICAgICAgPT4gJFBhcmFte1F1ZXVlSUR9LAogICAgICAgIFN1YmplY3QgICAgICA9PiAkUGFyYW17U3ViamVjdH0sCiAgICAgICAgTG9jayAgICAgICAgID0+ICd1bmxvY2snLAogICAgICAgIFR5cGVJRCAgICAgICA9PiAkUGFyYW17VHlwZUlEfSwKICAgICAgICBTZXJ2aWNlSUQgICAgPT4gJFBhcmFte1NlcnZpY2VJRH0sCiAgICAgICAgU0xBSUQgICAgICAgID0+ICRQYXJhbXtTTEFJRH0sCiAgICAgICAgU3RhdGVJRCAgICAgID0+ICRQYXJhbXtTdGF0ZUlEfSwKICAgICAgICBQcmlvcml0eUlEICAgPT4gJFBhcmFte1ByaW9yaXR5SUR9LAogICAgICAgIE93bmVySUQgICAgICA9PiAxLAogICAgICAgIEN1c3RvbWVyTm8gICA9PiAkQ3VzdG9tZXJJRCwKICAgICAgICBDdXN0b21lclVzZXIgPT4gJEN1c3RvbWVyVXNlciwKICAgICAgICBVc2VySUQgICAgICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICApOwogICAgaWYgKCAhJFRpY2tldElEICkgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAnRXJyb3I6IE5vIHRpY2tldCBjcmVhdGVkISBQbGVhc2UgY29udGFjdCBhZG1pbicsCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgIyBzZXQgdGlja2V0IGR5bmFtaWMgZmllbGRzCiAgICAjIGN5Y2xlIHRyb3VnaCB0aGUgYWN0aXZhdGVkIER5bmFtaWMgRmllbGRzIGZvciB0aGlzIHNjcmVlbgogICAgRFlOQU1JQ0ZJRUxEOgogICAgZm9yIG15ICREeW5hbWljRmllbGRDb25maWcgKCBAeyAkU2VsZi0+e0R5bmFtaWNGaWVsZH0gfSApIHsKICAgICAgICBuZXh0IERZTkFNSUNGSUVMRCBpZiAhSXNIYXNoUmVmV2l0aERhdGEoJER5bmFtaWNGaWVsZENvbmZpZyk7CiAgICAgICAgbmV4dCBEWU5BTUlDRklFTEQgaWYgJER5bmFtaWNGaWVsZENvbmZpZy0+e09iamVjdFR5cGV9IG5lICdUaWNrZXQnOwoKICAgICAgICAjIHNraXAgYWxsIGR5bmFtaWMgZmllbGRzIHRoYXQgYXJlIG5vdCBkZXNpZ25lZCByZW5kZXIgaW4gaVBob25lIEFwcAogICAgICAgIG15ICRJc0lQaG9uZUNhcGFibGUgPSAkRHluYW1pY0ZpZWxkQmFja2VuZE9iamVjdC0+SGFzQmVoYXZpb3IoCiAgICAgICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyA9PiAkRHluYW1pY0ZpZWxkQ29uZmlnLAogICAgICAgICAgICBCZWhhdmlvciAgICAgICAgICAgPT4gJ0lzSVBob25lQ2FwYWJsZScsCiAgICAgICAgKTsKICAgICAgICBuZXh0IERZTkFNSUNGSUVMRCBpZiAhJElzSVBob25lQ2FwYWJsZTsKCiAgICAgICAgIyBzZXQgdGhlIHZhbHVlCiAgICAgICAgbXkgJFN1Y2Nlc3MgPSAkRHluYW1pY0ZpZWxkQmFja2VuZE9iamVjdC0+VmFsdWVTZXQoCiAgICAgICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyA9PiAkRHluYW1pY0ZpZWxkQ29uZmlnLAogICAgICAgICAgICBPYmplY3RJRCAgICAgICAgICAgPT4gJFRpY2tldElELAogICAgICAgICAgICBWYWx1ZSAgICAgICAgICAgICAgPT4gJER5bmFtaWNGaWVsZFZhbHVlc3sgJER5bmFtaWNGaWVsZENvbmZpZy0+e05hbWV9IH0sCiAgICAgICAgICAgIFVzZXJJRCAgICAgICAgICAgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICApOwogICAgfQoKICAgIG15ICRNaW1lVHlwZSA9ICd0ZXh0L3BsYWluJzsKCiAgICAjIGNoZWNrIGlmIG5ldyBvd25lciBpcyBnaXZlbiAodGhlbiBzZW5kIG5vIGFnZW50IG5vdGlmeSkKICAgIG15ICROb0FnZW50Tm90aWZ5ID0gMDsKICAgIGlmICggJFBhcmFte093bmVySUR9ICkgewogICAgICAgICROb0FnZW50Tm90aWZ5ID0gMTsKICAgIH0KICAgIG15ICRRdWV1ZU5hbWUgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6UXVldWUnKS0+UXVldWVMb29rdXAoIFF1ZXVlSUQgPT4gJFBhcmFte1F1ZXVlSUR9ICk7CgogICAgbXkgJEFydGljbGVJRCA9ICRUaWNrZXRPYmplY3QtPkFydGljbGVDcmVhdGUoCiAgICAgICAgTm9BZ2VudE5vdGlmeSA9PiAkTm9BZ2VudE5vdGlmeSwKICAgICAgICBUaWNrZXRJRCAgICAgID0+ICRUaWNrZXRJRCwKICAgICAgICBBcnRpY2xlVHlwZSAgID0+ICRTZWxmLT57Q29uZmlnfS0+e0FydGljbGVUeXBlRGVmYXVsdH0sCiAgICAgICAgU2VuZGVyVHlwZSAgICA9PiAkU2VsZi0+e0NvbmZpZ30tPntTZW5kZXJUeXBlfSwKICAgICAgICBGcm9tICAgICAgICAgID0+ICRGcm9tLAogICAgICAgIFRvICAgICAgICAgICAgPT4gJFF1ZXVlTmFtZSwKICAgICAgICBTdWJqZWN0ICAgICAgID0+ICRQYXJhbXtTdWJqZWN0fSwKICAgICAgICBCb2R5ICAgICAgICAgID0+ICRQYXJhbXtCb2R5fSwKICAgICAgICBNaW1lVHlwZSAgICAgID0+ICRNaW1lVHlwZSwKCiAgICAgICAgIyBpUGhvbmUgbXVzdCBzZW5kIGluZm8gaW4gY3VycmVudCBjaGFyc2V0CiAgICAgICAgQ2hhcnNldCAgICAgICAgICA9PiAkQ29uZmlnT2JqZWN0LT5HZXQoJ0RlZmF1bHRDaGFyc2V0JyksCiAgICAgICAgVXNlcklEICAgICAgICAgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICBIaXN0b3J5VHlwZSAgICAgID0+ICRTZWxmLT57Q29uZmlnfS0+e0hpc3RvcnlUeXBlfSwKICAgICAgICBIaXN0b3J5Q29tbWVudCAgID0+ICRTZWxmLT57Q29uZmlnfS0+e0hpc3RvcnlDb21tZW50fSB8fCAnJSUnLAogICAgICAgIEF1dG9SZXNwb25zZVR5cGUgPT4gJ2F1dG8gcmVwbHknLAogICAgICAgIE9yaWdIZWFkZXIgICAgICAgPT4gewogICAgICAgICAgICBGcm9tICAgID0+ICRGcm9tLAogICAgICAgICAgICBUbyAgICAgID0+ICRRdWV1ZU5hbWUsCiAgICAgICAgICAgIFN1YmplY3QgPT4gJFBhcmFte1N1YmplY3R9LAogICAgICAgICAgICBCb2R5ICAgID0+ICRQYXJhbXtCb2R5fSwKICAgICAgICB9LAogICAgICAgIFF1ZXVlID0+ICRRdWV1ZU5hbWUsCiAgICApOwoKICAgIGlmICgkQXJ0aWNsZUlEKSB7CgogICAgICAgICMgc2V0IHRpY2tldCBkeW5hbWljIGZpZWxkcwogICAgICAgICMgY3ljbGUgdHJvdWdoIHRoZSBhY3RpdmF0ZWQgRHluYW1pYyBGaWVsZHMgZm9yIHRoaXMgc2NyZWVuCiAgICAgICAgRFlOQU1JQ0ZJRUxEOgogICAgICAgIGZvciBteSAkRHluYW1pY0ZpZWxkQ29uZmlnICggQHsgJFNlbGYtPntEeW5hbWljRmllbGR9IH0gKSB7CiAgICAgICAgICAgIG5leHQgRFlOQU1JQ0ZJRUxEIGlmICFJc0hhc2hSZWZXaXRoRGF0YSgkRHluYW1pY0ZpZWxkQ29uZmlnKTsKICAgICAgICAgICAgbmV4dCBEWU5BTUlDRklFTEQgaWYgJER5bmFtaWNGaWVsZENvbmZpZy0+e09iamVjdFR5cGV9IG5lICdBcnRpY2xlJzsKCiAgICAgICAgICAgICMgc2tpcCBhbGwgZHluYW1pYyBmaWVsZHMgdGhhdCBhcmUgbm90IGRlc2lnbmVkIHJlbmRlciBpbiBpUGhvbmUgQXBwCiAgICAgICAgICAgIG15ICRJc0lQaG9uZUNhcGFibGUgPSAkRHluYW1pY0ZpZWxkQmFja2VuZE9iamVjdC0+SGFzQmVoYXZpb3IoCiAgICAgICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgPT4gJER5bmFtaWNGaWVsZENvbmZpZywKICAgICAgICAgICAgICAgIEJlaGF2aW9yICAgICAgICAgICA9PiAnSXNJUGhvbmVDYXBhYmxlJywKICAgICAgICAgICAgKTsKICAgICAgICAgICAgbmV4dCBEWU5BTUlDRklFTEQgaWYgISRJc0lQaG9uZUNhcGFibGU7CgogICAgICAgICAgICAjIHNldCB0aGUgdmFsdWUKICAgICAgICAgICAgbXkgJFN1Y2Nlc3MgPSAkRHluYW1pY0ZpZWxkQmFja2VuZE9iamVjdC0+VmFsdWVTZXQoCiAgICAgICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgPT4gJER5bmFtaWNGaWVsZENvbmZpZywKICAgICAgICAgICAgICAgIE9iamVjdElEICAgICAgICAgICA9PiAkQXJ0aWNsZUlELAogICAgICAgICAgICAgICAgVmFsdWUgICAgICAgICAgICAgID0+ICREeW5hbWljRmllbGRWYWx1ZXN7ICREeW5hbWljRmllbGRDb25maWctPntOYW1lfSB9LAogICAgICAgICAgICAgICAgVXNlcklEICAgICAgICAgICAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgIyBzZXQgb3duZXIgKGlmIG5ldyB1c2VyIGlkIGlzIGdpdmVuKQogICAgICAgIGlmICggJFBhcmFte093bmVySUR9ICkgewogICAgICAgICAgICAkVGlja2V0T2JqZWN0LT5UaWNrZXRPd25lclNldCgKICAgICAgICAgICAgICAgIFRpY2tldElEICA9PiAkVGlja2V0SUQsCiAgICAgICAgICAgICAgICBOZXdVc2VySUQgPT4gJFBhcmFte093bmVySUR9LAogICAgICAgICAgICAgICAgVXNlcklEICAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICApOwoKICAgICAgICAgICAgIyBzZXQgbG9jawogICAgICAgICAgICAkVGlja2V0T2JqZWN0LT5UaWNrZXRMb2NrU2V0KAogICAgICAgICAgICAgICAgVGlja2V0SUQgPT4gJFRpY2tldElELAogICAgICAgICAgICAgICAgTG9jayAgICAgPT4gJ2xvY2snLAogICAgICAgICAgICAgICAgVXNlcklEICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICAjIGVsc2Ugc2V0IG93bmVyIHRvIGN1cnJlbnQgYWdlbnQgYnV0IGRvIG5vdCBsb2NrIGl0CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICRUaWNrZXRPYmplY3QtPlRpY2tldE93bmVyU2V0KAogICAgICAgICAgICAgICAgVGlja2V0SUQgICAgICAgICAgID0+ICRUaWNrZXRJRCwKICAgICAgICAgICAgICAgIE5ld1VzZXJJRCAgICAgICAgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgICAgIFNlbmROb05vdGlmaWNhdGlvbiA9PiAxLAogICAgICAgICAgICAgICAgVXNlcklEICAgICAgICAgICAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgIyBzZXQgcmVzcG9uc2libGUgKGlmIG5ldyB1c2VyIGlkIGlzIGdpdmVuKQogICAgICAgIGlmICggJFBhcmFte1Jlc3BvbnNpYmxlSUR9ICkgewogICAgICAgICAgICAkVGlja2V0T2JqZWN0LT5UaWNrZXRSZXNwb25zaWJsZVNldCgKICAgICAgICAgICAgICAgIFRpY2tldElEICA9PiAkVGlja2V0SUQsCiAgICAgICAgICAgICAgICBOZXdVc2VySUQgPT4gJFBhcmFte1Jlc3BvbnNpYmxlSUR9LAogICAgICAgICAgICAgICAgVXNlcklEICAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgIyB0aW1lIGFjY291bnRpbmcKICAgICAgICBpZiAoICRQYXJhbXtUaW1lVW5pdHN9ICkgewogICAgICAgICAgICAkVGlja2V0T2JqZWN0LT5UaWNrZXRBY2NvdW50VGltZSgKICAgICAgICAgICAgICAgIFRpY2tldElEICA9PiAkVGlja2V0SUQsCiAgICAgICAgICAgICAgICBBcnRpY2xlSUQgPT4gJEFydGljbGVJRCwKICAgICAgICAgICAgICAgIFRpbWVVbml0ICA9PiAkUGFyYW17VGltZVVuaXRzfSwKICAgICAgICAgICAgICAgIFVzZXJJRCAgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgICMgc2hvdWxkIEkgc2V0IGFuIHVubG9jaz8KICAgICAgICBteSAlU3RhdGVEYXRhID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlN0YXRlJyktPlN0YXRlR2V0KAogICAgICAgICAgICBJRCA9PiAkUGFyYW17U3RhdGVJRH0KICAgICAgICApOwogICAgICAgIGlmICggJFN0YXRlRGF0YXtUeXBlTmFtZX0gPX4gL15jbG9zZS9pICkgewogICAgICAgICAgICAkVGlja2V0T2JqZWN0LT5UaWNrZXRMb2NrU2V0KAogICAgICAgICAgICAgICAgVGlja2V0SUQgPT4gJFRpY2tldElELAogICAgICAgICAgICAgICAgTG9jayAgICAgPT4gJ3VubG9jaycsCiAgICAgICAgICAgICAgICBVc2VySUQgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgICMgc2V0IHBlbmRpbmcgdGltZQogICAgICAgIGVsc2lmICggJFN0YXRlRGF0YXtUeXBlTmFtZX0gPX4gL15wZW5kaW5nL2kgKSB7CgogICAgICAgICAgICAjIHNldCBwZW5kaW5nIHRpbWUKICAgICAgICAgICAgJFRpY2tldE9iamVjdC0+VGlja2V0UGVuZGluZ1RpbWVTZXQoCiAgICAgICAgICAgICAgICBVc2VySUQgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgICAgIFRpY2tldElEID0+ICRUaWNrZXRJRCwKICAgICAgICAgICAgICAgIFN0cmluZyAgID0+ICRQYXJhbXtQZW5kaW5nRGF0ZX0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgICAgIHJldHVybiBpbnQgJFRpY2tldElEOwogICAgfQogICAgZWxzZSB7CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICdFcnJvcjogbm8gYXJ0aWNsZSB3YXMgY3JlYXRlZCEgUGxlYXNlIGNvbnRhY3QgdGhlIGFkbWluJywKICAgICAgICApOwogICAgICAgIHJldHVybjsKICAgIH0KfQoKc3ViIF9UaWNrZXRDb21tb25BY3Rpb25zIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBnZXQgY29uZmlnIG9iamVjdAogICAgbXkgJENvbmZpZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyk7CgogICAgJFNlbGYtPntDb25maWd9ID0gJENvbmZpZ09iamVjdC0+R2V0KCAnaVBob25lOjpGcm9udGVuZDo6QWdlbnRUaWNrZXQnIC4gJFBhcmFte0FjdGlvbn0gKTsKCiAgICBteSAlU3RhdGVEYXRhID0gKCk7CgogICAgIyBnZXQgdGlja2V0IG9iamVjdAogICAgbXkgJFRpY2tldE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpUaWNrZXQnKTsKCiAgICBpZiAoICRQYXJhbXtTdGF0ZUlEfSApIHsKICAgICAgICAlU3RhdGVEYXRhID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlN0YXRlJyktPlN0YXRlR2V0KAogICAgICAgICAgICBJRCA9PiAkUGFyYW17U3RhdGVJRH0sCiAgICAgICAgKTsKICAgIH0KCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgaWYgKCAhJFBhcmFte1RpY2tldElEfSApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gJ05vIFRpY2tldElEIGlzIGdpdmVuISBQbGVhc2UgY29udGFjdCB0aGUgYWRtaW4uJywKICAgICAgICApOwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICAjIGNoZWNrIHBlcm1pc3Npb25zCiAgICBteSAkQWNjZXNzID0gJFRpY2tldE9iamVjdC0+VGlja2V0UGVybWlzc2lvbigKICAgICAgICBUeXBlICAgICA9PiAkU2VsZi0+e0NvbmZpZ30tPntQZXJtaXNzaW9ufSwKICAgICAgICBUaWNrZXRJRCA9PiAkUGFyYW17VGlja2V0SUR9LAogICAgICAgIFVzZXJJRCAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgKTsKCiAgICAjIGVycm9yIHNjcmVlbiwgZG9uJ3Qgc2hvdyB0aWNrZXQKICAgIGlmICggISRBY2Nlc3MgKSB7CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJZb3UgbmVlZCAkU2VsZi0+e0NvbmZpZ30tPntQZXJtaXNzaW9ufSBwZXJtaXNzaW9ucyEiLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuOwogICAgfQoKICAgIG15ICVUaWNrZXQgPSAkVGlja2V0T2JqZWN0LT5UaWNrZXRHZXQoIFRpY2tldElEID0+ICRQYXJhbXtUaWNrZXRJRH0gKTsKCiAgICAjIGdldCBsb2NrIHN0YXRlCiAgICBpZiAoICRTZWxmLT57Q29uZmlnfS0+e1JlcXVpcmVkTG9ja30gKSB7CiAgICAgICAgbXkgJExvY2tlZCA9ICRUaWNrZXRPYmplY3QtPlRpY2tldExvY2tHZXQoIFRpY2tldElEID0+ICRQYXJhbXtUaWNrZXRJRH0gKTsKCiAgICAgICAgaWYgKCAhJExvY2tlZCApIHsKICAgICAgICAgICAgJFRpY2tldE9iamVjdC0+VGlja2V0TG9ja1NldCgKICAgICAgICAgICAgICAgIFRpY2tldElEID0+ICRQYXJhbXtUaWNrZXRJRH0sCiAgICAgICAgICAgICAgICBMb2NrICAgICA9PiAnbG9jaycsCiAgICAgICAgICAgICAgICBVc2VySUQgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgbXkgJFN1Y2Nlc3MgPSAkVGlja2V0T2JqZWN0LT5UaWNrZXRPd25lclNldCgKICAgICAgICAgICAgICAgIFRpY2tldElEICA9PiAkUGFyYW17VGlja2V0SUR9LAogICAgICAgICAgICAgICAgVXNlcklEICAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICAgICAgTmV3VXNlcklEID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICApOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgbXkgJEFjY2Vzc09rID0gJFRpY2tldE9iamVjdC0+T3duZXJDaGVjaygKICAgICAgICAgICAgICAgIFRpY2tldElEID0+ICRQYXJhbXtUaWNrZXRJRH0sCiAgICAgICAgICAgICAgICBPd25lcklEICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgaWYgKCAhJEFjY2Vzc09rICkgewogICAgICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAnU29ycnksIHlvdSBuZWVkIHRvIGJlIHRoZSBvd25lciB0byBkbyB0aGlzIGFjdGlvbiEgJwogICAgICAgICAgICAgICAgICAgICAgICAuICdQbGVhc2UgY2hhbmdlIHRoZSBvd25lciBmaXJzdC4nLAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICAjIHRyYW5zZm9ybSBwZW5kaW5nIHRpbWUsIHRpbWUgc3RhbXAgYmFzZWQgb24gdXNlciB0aW1lIHpvbmUKICAgIGlmICggSXNTdHJpbmdXaXRoRGF0YSggJFBhcmFte1BlbmRpbmdEYXRlfSApICkgewogICAgICAgICRQYXJhbXtQZW5kaW5nRGF0ZX0gPSAkU2VsZi0+X1RyYW5zZm9ybURhdGVTZWxlY3Rpb24oCiAgICAgICAgICAgIFRpbWVTdGFtcCAgICA9PiAkUGFyYW17UGVuZGluZ0RhdGV9LAogICAgICAgICAgICBVc2VyVGltZVpvbmUgPT4gJFBhcmFte1VzZXJUaW1lWm9uZX0sCiAgICAgICAgKTsKICAgIH0KCiAgICAjIGdldCBkeW5hbWljIGZpZWxkIGNvbmZpZyBmb3IgdGhlIHNjcmVlbgogICAgJFNlbGYtPntEeW5hbWljRmllbGRGaWx0ZXJ9ID0gJFNlbGYtPntDb25maWd9LT57RHluYW1pY0ZpZWxkfTsKCiAgICAjIGdldCB0aGUgZHluYW1pYyBmaWVsZHMgZm9yIHRpY2tldCBvYmplY3QKICAgICRTZWxmLT57RHluYW1pY0ZpZWxkfSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQnKS0+RHluYW1pY0ZpZWxkTGlzdEdldCgKICAgICAgICBWYWxpZCAgICAgICA9PiAxLAogICAgICAgIE9iamVjdFR5cGUgID0+IFsgJ1RpY2tldCcsICdBcnRpY2xlJyBdLAogICAgICAgIEZpZWxkRmlsdGVyID0+ICRTZWxmLT57RHluYW1pY0ZpZWxkRmlsdGVyfSB8fCB7fSwKICAgICk7CgogICAgbXkgJUR5bmFtaWNGaWVsZFZhbHVlczsKCiAgICAjIGdldCBkeW5hbWljIGZpZWxkIGJhY2tlbmQgb2JqZWN0CiAgICBteSAkRHluYW1pY0ZpZWxkQmFja2VuZE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQ6OkJhY2tlbmQnKTsKCiAgICAjIGN5Y2xlIHRyb3VnaCB0aGUgYWN0aXZhdGVkIER5bmFtaWMgRmllbGRzIGZvciB0aGlzIHNjcmVlbgogICAgRFlOQU1JQ0ZJRUxEOgogICAgZm9yIG15ICREeW5hbWljRmllbGRDb25maWcgKCBAeyAkU2VsZi0+e0R5bmFtaWNGaWVsZH0gfSApIHsKICAgICAgICBuZXh0IERZTkFNSUNGSUVMRCBpZiAhSXNIYXNoUmVmV2l0aERhdGEoJER5bmFtaWNGaWVsZENvbmZpZyk7CiAgICAgICAgbmV4dCBEWU5BTUlDRklFTEQgaWYgIUlzSGFzaFJlZldpdGhEYXRhKCAkRHluYW1pY0ZpZWxkQ29uZmlnLT57Q29uZmlnfSApOwogICAgICAgIG5leHQgRFlOQU1JQ0ZJRUxEIGlmICEkRHluYW1pY0ZpZWxkQ29uZmlnLT57TmFtZX07CgogICAgICAgICMgc2tpcCBhbGwgZHluYW1pYyBmaWVsZHMgdGhhdCBhcmUgbm90IGRlc2lnbmVkIHJlbmRlciBpbiBpUGhvbmUgQXBwCiAgICAgICAgbXkgJElzSVBob25lQ2FwYWJsZSA9ICREeW5hbWljRmllbGRCYWNrZW5kT2JqZWN0LT5IYXNCZWhhdmlvcigKICAgICAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnID0+ICREeW5hbWljRmllbGRDb25maWcsCiAgICAgICAgICAgIEJlaGF2aW9yICAgICAgICAgICA9PiAnSXNJUGhvbmVDYXBhYmxlJywKICAgICAgICApOwogICAgICAgIG5leHQgRFlOQU1JQ0ZJRUxEIGlmICEkSXNJUGhvbmVDYXBhYmxlOwoKICAgICAgICAjIGV4dHJhY3QgdGhlIGR5bmFtaWMgZmllbGQgdmFsdWUgZm9ybSBwYXJhbWV0ZXJzCiAgICAgICAgJER5bmFtaWNGaWVsZFZhbHVlc3sgJER5bmFtaWNGaWVsZENvbmZpZy0+e05hbWV9IH0gPSAkRHluYW1pY0ZpZWxkQmFja2VuZE9iamVjdC0+SVBob25lRmllbGRWYWx1ZUdldCgKICAgICAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnID0+ICREeW5hbWljRmllbGRDb25maWcsCiAgICAgICAgICAgIFRyYW5zZm9ybURhdGVzICAgICA9PiAxLAogICAgICAgICAgICAlUGFyYW0sCiAgICAgICAgKTsKCiAgICAgICAgIyBwZXJmb3JtIHZhbGlkYXRpb24gb2YgdGhlIGRhdGEKICAgICAgICBteSAkVmFsaWRhdGlvblJlc3VsdCA9ICREeW5hbWljRmllbGRCYWNrZW5kT2JqZWN0LT5JUGhvbmVGaWVsZFZhbHVlVmFsaWRhdGUoCiAgICAgICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyA9PiAkRHluYW1pY0ZpZWxkQ29uZmlnLAogICAgICAgICAgICBWYWx1ZSAgICAgICAgICAgICAgPT4gJER5bmFtaWNGaWVsZFZhbHVlc3sgJER5bmFtaWNGaWVsZENvbmZpZy0+e05hbWV9IH0sCiAgICAgICAgICAgIE1hbmRhdG9yeSAgICAgICAgICA9PiAkU2VsZi0+e0NvbmZpZ30tPntEeW5hbWljRmllbGR9LT57ICREeW5hbWljRmllbGRDb25maWctPntOYW1lfSB9ID09IDIsCiAgICAgICAgKTsKCiAgICAgICAgaWYgKCAhSXNIYXNoUmVmV2l0aERhdGEoJFZhbGlkYXRpb25SZXN1bHQpICkgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiQ291bGQgbm90IHBlcmZvcm0gdmFsaWRhdGlvbiBvbiBmaWVsZCAkRHluYW1pY0ZpZWxkQ29uZmlnLT57TGFiZWx9ISIsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CgogICAgICAgICMgcHJvcGFnYXRlIHZhbGlkYXRpb24gZXJyb3IKICAgICAgICBpZiAoICRWYWxpZGF0aW9uUmVzdWx0LT57U2VydmVyRXJyb3J9ICkgewoKICAgICAgICAgICAgbXkgJEVycm9yTWVzc2FnZSA9ICRWYWxpZGF0aW9uUmVzdWx0LT57RXJyb3JNZXNzYWdlfQogICAgICAgICAgICAgICAgfHwgIkR5bmFtaWMgZmllbGQgJER5bmFtaWNGaWVsZENvbmZpZy0+e0xhYmVsfSBpbnZhbGlkIjsKCiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICRFcnJvck1lc3NhZ2UsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgIyByZS13cmFwIGJvZHkgaWYgbm8gcmljaCB0ZXh0IGlzIHVzZWQKICAgIGlmICggJFBhcmFte0JvZHl9ICkgewogICAgICAgIG15ICRTaXplID0gJENvbmZpZ09iamVjdC0+R2V0KCdUaWNrZXQ6OkZyb250ZW5kOjpUZXh0QXJlYU5vdGUnKSB8fCA3MDsKICAgICAgICAkUGFyYW17Qm9keX0gPX4gcy8oXj4uK3wuezQsJFNpemV9KSg/OlxzfFx6KS8kMVxuL2dtOwogICAgfQoKICAgICMgZ2V0IHRpbWUgb2JqZWN0CiAgICBteSAkVGltZU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpUaW1lJyk7CgogICAgIyBjaGVjayBwZW5kaW5nIGRhdGUKICAgIGlmICggJFN0YXRlRGF0YXtUeXBlTmFtZX0gJiYgJFN0YXRlRGF0YXtUeXBlTmFtZX0gPX4gL15wZW5kaW5nL2kgKSB7CiAgICAgICAgaWYgKCAhJFRpbWVPYmplY3QtPlRpbWVTdGFtcDJTeXN0ZW1UaW1lKCBTdHJpbmcgPT4gJFBhcmFte1BlbmRpbmdEYXRlfSApICkgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAnRGF0ZSBpbnZhbGlkJywKICAgICAgICAgICAgKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgICAgICBpZiAoCiAgICAgICAgICAgICRUaW1lT2JqZWN0LT5UaW1lU3RhbXAyU3lzdGVtVGltZSggU3RyaW5nID0+ICRQYXJhbXtQZW5kaW5nRGF0ZX0gKQogICAgICAgICAgICA8ICRUaW1lT2JqZWN0LT5TeXN0ZW1UaW1lKCkKICAgICAgICAgICAgKQogICAgICAgIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gJ0RhdGUgaW52YWxpZCcsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgaWYgKCAkU2VsZi0+e0NvbmZpZ30tPntOb3RlfSApIHsKCiAgICAgICAgIyBjaGVjayBzdWJqZWN0CiAgICAgICAgaWYgKCAhJFBhcmFte1N1YmplY3R9ICkgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAnU3ViamVjdCBJbnZhbGlkOiB0aGUgU3ViamVjdCBpcyBlbXB0eSEnLAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQoKICAgICAgICAjIGNoZWNrIGJvZHkKICAgICAgICBpZiAoICEkUGFyYW17Qm9keX0gKSB7CiAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICdCb2R5IEludmFsaWQ6IHRoZSBCb2R5IGlzIGVtcHR5IScsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgI2NoZWNrIGlmIFRpdGxlCiAgICBpZiAoICEkUGFyYW17VGl0bGV9ICkgewogICAgICAgIG15ICVUaWNrZXREYXRhID0gJFRpY2tldE9iamVjdC0+VGlja2V0R2V0KAogICAgICAgICAgICBUaWNrZXRJRCA9PiAkUGFyYW17VGlja2V0SUR9LAogICAgICAgICAgICBVc2VySUQgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICApOwoKICAgICAgICAkUGFyYW17VGl0bGV9ID0gJFRpY2tldERhdGF7VGl0bGV9OwogICAgfQoKICAgICMgc2V0IG5ldyB0aXRsZQogICAgaWYgKCAkU2VsZi0+e0NvbmZpZ30tPntUaXRsZX0gKSB7CiAgICAgICAgaWYgKCBkZWZpbmVkICRQYXJhbXtUaXRsZX0gKSB7CiAgICAgICAgICAgICRUaWNrZXRPYmplY3QtPlRpY2tldFRpdGxlVXBkYXRlKAogICAgICAgICAgICAgICAgVGl0bGUgICAgPT4gJFBhcmFte1RpdGxlfSwKICAgICAgICAgICAgICAgIFRpY2tldElEID0+ICRQYXJhbXtUaWNrZXRJRH0sCiAgICAgICAgICAgICAgICBVc2VySUQgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICB9CgogICAgIyBzZXQgbmV3IHR5cGUKICAgIGlmICggJENvbmZpZ09iamVjdC0+R2V0KCdUaWNrZXQ6OlR5cGUnKSAmJiAkU2VsZi0+e0NvbmZpZ30tPntUaWNrZXRUeXBlfSApIHsKICAgICAgICBpZiAoICRQYXJhbXtUeXBlSUR9ICkgewogICAgICAgICAgICAkVGlja2V0T2JqZWN0LT5UaWNrZXRUeXBlU2V0KAogICAgICAgICAgICAgICAgVHlwZUlEICAgPT4gJFBhcmFte1R5cGVJRH0sCiAgICAgICAgICAgICAgICBUaWNrZXRJRCA9PiAkUGFyYW17VGlja2V0SUR9LAogICAgICAgICAgICAgICAgVXNlcklEICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgfQoKICAgICMgc2V0IG5ldyBzZXJ2aWNlCiAgICBpZiAoICRDb25maWdPYmplY3QtPkdldCgnVGlja2V0OjpTZXJ2aWNlJykgJiYgJFNlbGYtPntDb25maWd9LT57U2VydmljZX0gKSB7CiAgICAgICAgaWYgKCBkZWZpbmVkICRQYXJhbXtTZXJ2aWNlSUR9ICkgewogICAgICAgICAgICAkVGlja2V0T2JqZWN0LT5UaWNrZXRTZXJ2aWNlU2V0KAogICAgICAgICAgICAgICAgU2VydmljZUlEICAgICAgPT4gJFBhcmFte1NlcnZpY2VJRH0sCiAgICAgICAgICAgICAgICBUaWNrZXRJRCAgICAgICA9PiAkUGFyYW17VGlja2V0SUR9LAogICAgICAgICAgICAgICAgQ3VzdG9tZXJVc2VySUQgPT4gJFRpY2tldHtDdXN0b21lclVzZXJJRH0sCiAgICAgICAgICAgICAgICBVc2VySUQgICAgICAgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICAgICAgaWYgKCBkZWZpbmVkICRQYXJhbXtTTEFJRH0gKSB7CiAgICAgICAgICAgICRUaWNrZXRPYmplY3QtPlRpY2tldFNMQVNldCgKICAgICAgICAgICAgICAgIFNMQUlEICAgID0+ICRQYXJhbXtTTEFJRH0sCiAgICAgICAgICAgICAgICBUaWNrZXRJRCA9PiAkUGFyYW17VGlja2V0SUR9LAogICAgICAgICAgICAgICAgVXNlcklEICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgfQoKICAgICMgc2V0IG5ldyBvd25lcgogICAgbXkgQE5vdGlmeURvbmU7CiAgICBpZiAoICRTZWxmLT57Q29uZmlnfS0+e093bmVyfSApIHsKICAgICAgICBteSAkQm9keVRleHQgPSAkUGFyYW17Qm9keX0gfHwgJyc7CiAgICAgICAgaWYgKCAkUGFyYW17T3duZXJJRH0gKSB7CiAgICAgICAgICAgICRUaWNrZXRPYmplY3QtPlRpY2tldExvY2tTZXQoCiAgICAgICAgICAgICAgICBUaWNrZXRJRCA9PiAkUGFyYW17VGlja2V0SUR9LAogICAgICAgICAgICAgICAgTG9jayAgICAgPT4gJ2xvY2snLAogICAgICAgICAgICAgICAgVXNlcklEICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIG15ICRTdWNjZXNzID0gJFRpY2tldE9iamVjdC0+VGlja2V0T3duZXJTZXQoCiAgICAgICAgICAgICAgICBUaWNrZXRJRCAgPT4gJFBhcmFte1RpY2tldElEfSwKICAgICAgICAgICAgICAgIFVzZXJJRCAgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgICAgIE5ld1VzZXJJRCA9PiAkUGFyYW17T3duZXJJRH0sCiAgICAgICAgICAgICAgICBDb21tZW50ICAgPT4gJEJvZHlUZXh0LAogICAgICAgICAgICApOwoKICAgICAgICAgICAgIyByZW1lbWJlciB0byBub3Qgbm90aWZ5IG93bmVyIHR3aWNlCiAgICAgICAgICAgIGlmICggJFN1Y2Nlc3MgJiYgJFN1Y2Nlc3MgZXEgMSApIHsKICAgICAgICAgICAgICAgIHB1c2ggQE5vdGlmeURvbmUsICRQYXJhbXtPd25lcklEfTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICAjIHNldCBuZXcgcmVzcG9uc2libGUKICAgIGlmICggJFNlbGYtPntDb25maWd9LT57UmVzcG9uc2libGV9ICkgewogICAgICAgIGlmICggJFBhcmFte1Jlc3BvbnNpYmxlSUR9ICkgewogICAgICAgICAgICBteSAkQm9keVRleHQgPSAkUGFyYW17Qm9keX0gfHwgJyc7CiAgICAgICAgICAgIG15ICRTdWNjZXNzID0gJFRpY2tldE9iamVjdC0+VGlja2V0UmVzcG9uc2libGVTZXQoCiAgICAgICAgICAgICAgICBUaWNrZXRJRCAgPT4gJFBhcmFte1RpY2tldElEfSwKICAgICAgICAgICAgICAgIFVzZXJJRCAgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgICAgIE5ld1VzZXJJRCA9PiAkUGFyYW17UmVzcG9uc2libGVJRH0sCiAgICAgICAgICAgICAgICBDb21tZW50ICAgPT4gJEJvZHlUZXh0LAogICAgICAgICAgICApOwoKICAgICAgICAgICAgIyByZW1lbWJlciB0byBub3Qgbm90aWZ5IHJlc3BvbnNpYmxlIHR3aWNlCiAgICAgICAgICAgIGlmICggJFN1Y2Nlc3MgJiYgJFN1Y2Nlc3MgZXEgMSApIHsKICAgICAgICAgICAgICAgIHB1c2ggQE5vdGlmeURvbmUsICRQYXJhbXtSZXNwb25zaWJsZUlEfTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICAjIGFkZCBub3RlCiAgICBteSAkQXJ0aWNsZUlEID0gJyc7CiAgICBpZiAoICRTZWxmLT57Q29uZmlnfS0+e05vdGV9IHx8ICRQYXJhbXtEZWZhdWx0c30gKSB7CiAgICAgICAgbXkgJE1pbWVUeXBlID0gJ3RleHQvcGxhaW4nOwoKICAgICAgICBteSAlVXNlciA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVc2VyJyktPkdldFVzZXJEYXRhKAogICAgICAgICAgICBVc2VySUQgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgKTsKCiAgICAgICAgbXkgJEZyb20gPSAiJFVzZXJ7VXNlckZpcnN0bmFtZX0gJFVzZXJ7VXNlckxhc3RuYW1lfSA8JFVzZXJ7VXNlckVtYWlsfT4iOwoKICAgICAgICAkQXJ0aWNsZUlEID0gJFRpY2tldE9iamVjdC0+QXJ0aWNsZUNyZWF0ZSgKICAgICAgICAgICAgVGlja2V0SUQgICA9PiAkUGFyYW17VGlja2V0SUR9LAogICAgICAgICAgICBTZW5kZXJUeXBlID0+ICdhZ2VudCcsCiAgICAgICAgICAgIEZyb20gICAgICAgPT4gJEZyb20sCiAgICAgICAgICAgIE1pbWVUeXBlICAgPT4gJE1pbWVUeXBlLAoKICAgICAgICAgICAgIyBpUGhvbmUgbXVzdCBzZW5kIGluZm8gaW4gY3VycmVudCBjaGFyc2V0CiAgICAgICAgICAgIENoYXJzZXQgICAgICAgID0+ICRDb25maWdPYmplY3QtPkdldCgnRGVmYXVsdENoYXJzZXQnKSwKICAgICAgICAgICAgVXNlcklEICAgICAgICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgIEhpc3RvcnlUeXBlICAgID0+ICRTZWxmLT57Q29uZmlnfS0+e0hpc3RvcnlUeXBlfSwKICAgICAgICAgICAgSGlzdG9yeUNvbW1lbnQgPT4gJFNlbGYtPntDb25maWd9LT57SGlzdG9yeUNvbW1lbnR9LAoKICAgICAgICAgICAgIyAgICAgICAgICAgICAgICBGb3JjZU5vdGlmaWNhdGlvblRvVXNlcklEICAgICAgID0+IFxATm90aWZ5VXNlcklEcywKICAgICAgICAgICAgRXhjbHVkZU11dGVOb3RpZmljYXRpb25Ub1VzZXJJRCA9PiBcQE5vdGlmeURvbmUsCiAgICAgICAgICAgICVQYXJhbSwKICAgICAgICApOwoKICAgICAgICBpZiAoICEkQXJ0aWNsZUlEICkgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAnRXJyb3I6IG5vIGFydGljbGUgd2FzIGNyZWF0ZWQhIFBsZWFzZSBjb250YWN0IHRoZSBhZG1pbi4nLAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQoKICAgICAgICAjIHRpbWUgYWNjb3VudGluZwogICAgICAgIGlmICggJFBhcmFte1RpbWVVbml0c30gKSB7CiAgICAgICAgICAgICRUaWNrZXRPYmplY3QtPlRpY2tldEFjY291bnRUaW1lKAogICAgICAgICAgICAgICAgVGlja2V0SUQgID0+ICRQYXJhbXtUaWNrZXRJRH0sCiAgICAgICAgICAgICAgICBBcnRpY2xlSUQgPT4gJEFydGljbGVJRCwKICAgICAgICAgICAgICAgIFRpbWVVbml0ICA9PiAkUGFyYW17VGltZVVuaXRzfSwKICAgICAgICAgICAgICAgIFVzZXJJRCAgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgICMgc2V0IGR5bmFtaWMgZmllbGRzCiAgICAgICAgIyBjeWNsZSB0cm91Z2ggdGhlIGFjdGl2YXRlZCBEeW5hbWljIEZpZWxkcyBmb3IgdGhpcyBzY3JlZW4KICAgICAgICBEWU5BTUlDRklFTEQ6CiAgICAgICAgZm9yIG15ICREeW5hbWljRmllbGRDb25maWcgKCBAeyAkU2VsZi0+e0R5bmFtaWNGaWVsZH0gfSApIHsKICAgICAgICAgICAgbmV4dCBEWU5BTUlDRklFTEQgaWYgIUlzSGFzaFJlZldpdGhEYXRhKCREeW5hbWljRmllbGRDb25maWcpOwoKICAgICAgICAgICAgIyBzZXQgdGhlIG9iamVjdCBJRCAoVGlja2V0SUQgb3IgQXJ0aWNsZUlEKSBkZXBlbmRpbmcgb24gdGhlIGZpZWxkIGNvbmZpZ3VyYXRpb24KICAgICAgICAgICAgbXkgJE9iamVjdElEID0gJER5bmFtaWNGaWVsZENvbmZpZy0+e09iamVjdFR5cGV9IGVxICdBcnRpY2xlJyA/ICRBcnRpY2xlSUQgOiAkUGFyYW17VGlja2V0SUR9OwoKICAgICAgICAgICAgIyBzZXQgdGhlIHZhbHVlCiAgICAgICAgICAgIG15ICRTdWNjZXNzID0gJER5bmFtaWNGaWVsZEJhY2tlbmRPYmplY3QtPlZhbHVlU2V0KAogICAgICAgICAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnID0+ICREeW5hbWljRmllbGRDb25maWcsCiAgICAgICAgICAgICAgICBPYmplY3RJRCAgICAgICAgICAgPT4gJE9iamVjdElELAogICAgICAgICAgICAgICAgVmFsdWUgICAgICAgICAgICAgID0+ICREeW5hbWljRmllbGRWYWx1ZXN7ICREeW5hbWljRmllbGRDb25maWctPntOYW1lfSB9LAogICAgICAgICAgICAgICAgVXNlcklEICAgICAgICAgICAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgIyBzZXQgcHJpb3JpdHkKICAgICAgICBpZiAoICRTZWxmLT57Q29uZmlnfS0+e1ByaW9yaXR5fSAmJiAkUGFyYW17UHJpb3JpdHlJRH0gKSB7CiAgICAgICAgICAgICRUaWNrZXRPYmplY3QtPlRpY2tldFByaW9yaXR5U2V0KAogICAgICAgICAgICAgICAgVGlja2V0SUQgICA9PiAkUGFyYW17VGlja2V0SUR9LAogICAgICAgICAgICAgICAgUHJpb3JpdHlJRCA9PiAkUGFyYW17UHJpb3JpdHlJRH0sCiAgICAgICAgICAgICAgICBVc2VySUQgICAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgIyBzZXQgc3RhdGUKICAgICAgICBpZiAoICRTZWxmLT57Q29uZmlnfS0+e1N0YXRlfSAmJiAkUGFyYW17U3RhdGVJRH0gKSB7CiAgICAgICAgICAgICRUaWNrZXRPYmplY3QtPlRpY2tldFN0YXRlU2V0KAogICAgICAgICAgICAgICAgVGlja2V0SUQgPT4gJFBhcmFte1RpY2tldElEfSwKICAgICAgICAgICAgICAgIFN0YXRlSUQgID0+ICRQYXJhbXtTdGF0ZUlEfSwKICAgICAgICAgICAgICAgIFVzZXJJRCAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICApOwoKICAgICAgICAgICAgIyB1bmxvY2sgdGhlIHRpY2tldCBhZnRlciBjbG9zZQogICAgICAgICAgICBteSAlU3RhdGVEYXRhID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlN0YXRlJyktPlN0YXRlR2V0KAogICAgICAgICAgICAgICAgSUQgPT4gJFBhcmFte1N0YXRlSUR9LAogICAgICAgICAgICApOwoKICAgICAgICAgICAgIyBzZXQgdW5sb2NrIG9uIGNsb3NlIHN0YXRlCiAgICAgICAgICAgIGlmICggJFN0YXRlRGF0YXtUeXBlTmFtZX0gPX4gL15jbG9zZS9pICkgewogICAgICAgICAgICAgICAgJFRpY2tldE9iamVjdC0+VGlja2V0TG9ja1NldCgKICAgICAgICAgICAgICAgICAgICBUaWNrZXRJRCA9PiAkUGFyYW17VGlja2V0SUR9LAogICAgICAgICAgICAgICAgICAgIExvY2sgICAgID0+ICd1bmxvY2snLAogICAgICAgICAgICAgICAgICAgIFVzZXJJRCAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgIyBzZXQgcGVuZGluZyB0aW1lIG9uIHBlbmRpbmcgc3RhdGUKICAgICAgICAgICAgZWxzaWYgKCAkU3RhdGVEYXRhe1R5cGVOYW1lfSA9fiAvXnBlbmRpbmcvaSApIHsKCiAgICAgICAgICAgICAgICAjIHNldCBwZW5kaW5nIHRpbWUKICAgICAgICAgICAgICAgICRUaWNrZXRPYmplY3QtPlRpY2tldFBlbmRpbmdUaW1lU2V0KAogICAgICAgICAgICAgICAgICAgIFVzZXJJRCAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICAgICAgICAgIFRpY2tldElEID0+ICRQYXJhbXtUaWNrZXRJRH0sCiAgICAgICAgICAgICAgICAgICAgU3RyaW5nICAgPT4gJFBhcmFte1BlbmRpbmdEYXRlfSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgZWxzZSB7CgogICAgICAgICMgZmlsbC11cCBjb25maWd1cmVkIGRlZmF1bHQgdmFycwogICAgICAgIGlmICggIWRlZmluZWQgJFBhcmFte0JvZHl9ICYmICRTZWxmLT57Q29uZmlnfS0+e0JvZHl9ICkgewogICAgICAgICAgICAkUGFyYW17Qm9keX0gPSAkU2VsZi0+e0NvbmZpZ30tPntCb2R5fTsKICAgICAgICB9CiAgICAgICAgaWYgKCAhZGVmaW5lZCAkUGFyYW17U3ViamVjdH0gJiYgJFNlbGYtPntDb25maWd9LT57U3ViamVjdH0gKSB7CiAgICAgICAgICAgICRQYXJhbXtTdWJqZWN0fSA9ICRTZWxmLT57Q29uZmlnfS0+e1N1YmplY3R9OwogICAgICAgIH0KCiAgICAgICAgbXkgJFJlc3VsdCA9ICRTZWxmLT5fVGlja2V0Q29tbW9uQWN0aW9ucygKICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICAgICBEZWZhdWx0cyA9PiAxLAogICAgICAgICk7CiAgICAgICAgcmV0dXJuICRSZXN1bHQ7CiAgICB9CiAgICByZXR1cm4gJEFydGljbGVJRDsKfQoKc3ViIF9UaWNrZXRDb21wb3NlIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBnZXQgY29uZmlnIG9iamVjdAogICAgbXkgJENvbmZpZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyk7CgogICAgJFNlbGYtPntDb25maWd9ID0gJENvbmZpZ09iamVjdC0+R2V0KCdpUGhvbmU6OkZyb250ZW5kOjpBZ2VudFRpY2tldENvbXBvc2UnKTsKCiAgICAjIGNoZWNrIG5lZWRlZCBzdHVmZgogICAgaWYgKCAhJFBhcmFte1RpY2tldElEfSApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gJ05vIFRpY2tldElEIGlzIGdpdmVuISBQbGVhc2UgY29udGFjdCB0aGUgYWRtaW4uJywKICAgICAgICApOwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICAjIGdldCB0aWNrZXQgb2JqZWN0CiAgICBteSAkVGlja2V0T2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlRpY2tldCcpOwoKICAgICMgY2hlY2sgcGVybWlzc2lvbnMKICAgIG15ICRBY2Nlc3MgPSAkVGlja2V0T2JqZWN0LT5UaWNrZXRQZXJtaXNzaW9uKAogICAgICAgIFR5cGUgICAgID0+ICRTZWxmLT57Q29uZmlnfS0+e1Blcm1pc3Npb259LAogICAgICAgIFRpY2tldElEID0+ICRQYXJhbXtUaWNrZXRJRH0sCiAgICAgICAgVXNlcklEICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICApOwoKICAgICMgZXJyb3Igc2NyZWVuLCBkb24ndCBzaG93IHRpY2tldAogICAgaWYgKCAhJEFjY2VzcyApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gIllvdSBuZWVkICRTZWxmLT57Q29uZmlnfS0+e1Blcm1pc3Npb259IHBlcm1pc3Npb25zISIsCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CiAgICBteSAlVGlja2V0ID0gJFRpY2tldE9iamVjdC0+VGlja2V0R2V0KCBUaWNrZXRJRCA9PiAkUGFyYW17VGlja2V0SUR9ICk7CgogICAgIyBnZXQgbG9jayBzdGF0ZQogICAgaWYgKCAkU2VsZi0+e0NvbmZpZ30tPntSZXF1aXJlZExvY2t9ICkgewogICAgICAgIG15ICRMb2NrZWQgPSAkVGlja2V0T2JqZWN0LT5UaWNrZXRMb2NrR2V0KCBUaWNrZXRJRCA9PiAkUGFyYW17VGlja2V0SUR9ICk7CiAgICAgICAgaWYgKCAhJExvY2tlZCApIHsKICAgICAgICAgICAgJFRpY2tldE9iamVjdC0+VGlja2V0TG9ja1NldCgKICAgICAgICAgICAgICAgIFRpY2tldElEID0+ICRQYXJhbXtUaWNrZXRJRH0sCiAgICAgICAgICAgICAgICBMb2NrICAgICA9PiAnbG9jaycsCiAgICAgICAgICAgICAgICBVc2VySUQgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIG15ICRTdWNjZXNzID0gJFRpY2tldE9iamVjdC0+VGlja2V0T3duZXJTZXQoCiAgICAgICAgICAgICAgICBUaWNrZXRJRCAgPT4gJFBhcmFte1RpY2tldElEfSwKICAgICAgICAgICAgICAgIFVzZXJJRCAgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgICAgIE5ld1VzZXJJRCA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgIG15ICRBY2Nlc3NPayA9ICRUaWNrZXRPYmplY3QtPk93bmVyQ2hlY2soCiAgICAgICAgICAgICAgICBUaWNrZXRJRCA9PiAkUGFyYW17VGlja2V0SUR9LAogICAgICAgICAgICAgICAgT3duZXJJRCAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIGlmICggISRBY2Nlc3NPayApIHsKICAgICAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIlNvcnJ5LCB5b3UgbmVlZCB0byBiZSB0aGUgb3duZXIgdG8gZG8gdGhpcyBhY3Rpb24hICIKICAgICAgICAgICAgICAgICAgICAgICAgLiAiUGxlYXNlIGNoYW5nZSB0aGUgb3duZXIgZmlyc3QuIiwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgIyB0cmFuc2Zvcm0gcGVuZGluZyB0aW1lLCB0aW1lIHN0YW1wIGJhc2VkIG9uIHVzZXIgdGltZSB6b25lCiAgICBpZiAoIElzU3RyaW5nV2l0aERhdGEoICRQYXJhbXtQZW5kaW5nRGF0ZX0gKSApIHsKICAgICAgICAkUGFyYW17UGVuZGluZ0RhdGV9ID0gJFNlbGYtPl9UcmFuc2Zvcm1EYXRlU2VsZWN0aW9uKAogICAgICAgICAgICBUaW1lU3RhbXAgICAgPT4gJFBhcmFte1BlbmRpbmdEYXRlfSwKICAgICAgICAgICAgVXNlclRpbWVab25lID0+ICRQYXJhbXtVc2VyVGltZVpvbmV9LAogICAgICAgICk7CiAgICB9CgogICAgIyBnZXQgZHluYW1pYyBmaWVsZCBjb25maWcgZm9yIHRoZSBzY3JlZW4KICAgICRTZWxmLT57RHluYW1pY0ZpZWxkRmlsdGVyfSA9ICRTZWxmLT57Q29uZmlnfS0+e0R5bmFtaWNGaWVsZH07CgogICAgIyBnZXQgdGhlIGR5bmFtaWMgZmllbGRzIGZvciB0aWNrZXQgb2JqZWN0CiAgICAkU2VsZi0+e0R5bmFtaWNGaWVsZH0gPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6RHluYW1pY0ZpZWxkJyktPkR5bmFtaWNGaWVsZExpc3RHZXQoCiAgICAgICAgVmFsaWQgICAgICAgPT4gMSwKICAgICAgICBPYmplY3RUeXBlICA9PiBbICdUaWNrZXQnLCAnQXJ0aWNsZScgXSwKICAgICAgICBGaWVsZEZpbHRlciA9PiAkU2VsZi0+e0R5bmFtaWNGaWVsZEZpbHRlcn0gfHwge30sCiAgICApOwoKICAgIG15ICVEeW5hbWljRmllbGRWYWx1ZXM7CgogICAgIyBnZXQgZHluYW1pYyBmaWVsZCBiYWNrZW5kIG9iamVjdAogICAgbXkgJER5bmFtaWNGaWVsZEJhY2tlbmRPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6RHluYW1pY0ZpZWxkOjpCYWNrZW5kJyk7CgogICAgIyBjeWNsZSB0cm91Z2ggdGhlIGFjdGl2YXRlZCBEeW5hbWljIEZpZWxkcyBmb3IgdGhpcyBzY3JlZW4KICAgIERZTkFNSUNGSUVMRDoKICAgIGZvciBteSAkRHluYW1pY0ZpZWxkQ29uZmlnICggQHsgJFNlbGYtPntEeW5hbWljRmllbGR9IH0gKSB7CiAgICAgICAgbmV4dCBEWU5BTUlDRklFTEQgaWYgIUlzSGFzaFJlZldpdGhEYXRhKCREeW5hbWljRmllbGRDb25maWcpOwogICAgICAgIG5leHQgRFlOQU1JQ0ZJRUxEIGlmICFJc0hhc2hSZWZXaXRoRGF0YSggJER5bmFtaWNGaWVsZENvbmZpZy0+e0NvbmZpZ30gKTsKICAgICAgICBuZXh0IERZTkFNSUNGSUVMRCBpZiAhJER5bmFtaWNGaWVsZENvbmZpZy0+e05hbWV9OwoKICAgICAgICBuZXh0IERZTkFNSUNGSUVMRCBpZiAhJER5bmFtaWNGaWVsZEJhY2tlbmRPYmplY3QtPklzSVBob25lQ2FwYWJsZSgKICAgICAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnID0+ICREeW5hbWljRmllbGRDb25maWcsCiAgICAgICAgKTsKCiAgICAgICAgIyBleHRyYWN0IHRoZSBkeW5hbWljIGZpZWxkIHZhbHVlIGZvcm0gcGFyYW1ldGVycwogICAgICAgICREeW5hbWljRmllbGRWYWx1ZXN7ICREeW5hbWljRmllbGRDb25maWctPntOYW1lfSB9ID0gJER5bmFtaWNGaWVsZEJhY2tlbmRPYmplY3QtPklQaG9uZUZpZWxkVmFsdWVHZXQoCiAgICAgICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyA9PiAkRHluYW1pY0ZpZWxkQ29uZmlnLAogICAgICAgICAgICBUcmFuc2Zvcm1EYXRlcyAgICAgPT4gMSwKICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICk7CgogICAgICAgICMgcGVyZm9ybSB2YWxpZGF0aW9uIG9mIHRoZSBkYXRhCiAgICAgICAgbXkgJFZhbGlkYXRpb25SZXN1bHQgPSAkRHluYW1pY0ZpZWxkQmFja2VuZE9iamVjdC0+SVBob25lRmllbGRWYWx1ZVZhbGlkYXRlKAogICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgPT4gJER5bmFtaWNGaWVsZENvbmZpZywKICAgICAgICAgICAgVmFsdWUgICAgICAgICAgICAgID0+ICREeW5hbWljRmllbGRWYWx1ZXN7ICREeW5hbWljRmllbGRDb25maWctPntOYW1lfSB9LAogICAgICAgICAgICBNYW5kYXRvcnkgICAgICAgICAgPT4gJFNlbGYtPntDb25maWd9LT57RHluYW1pY0ZpZWxkfS0+eyAkRHluYW1pY0ZpZWxkQ29uZmlnLT57TmFtZX0gfSA9PSAyLAogICAgICAgICk7CgogICAgICAgIGlmICggIUlzSGFzaFJlZldpdGhEYXRhKCRWYWxpZGF0aW9uUmVzdWx0KSApIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIkNvdWxkIG5vdCBwZXJmb3JtIHZhbGlkYXRpb24gb24gZmllbGQgJER5bmFtaWNGaWVsZENvbmZpZy0+e0xhYmVsfSEiLAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQoKICAgICAgICAjIHByb3BhZ2F0ZSB2YWxpZGF0aW9uIGVycm9yCiAgICAgICAgaWYgKCAkVmFsaWRhdGlvblJlc3VsdC0+e1NlcnZlckVycm9yfSApIHsKCiAgICAgICAgICAgIG15ICRFcnJvck1lc3NhZ2UgPSAkVmFsaWRhdGlvblJlc3VsdC0+e0Vycm9yTWVzc2FnZX0KICAgICAgICAgICAgICAgIHx8ICJEeW5hbWljIGZpZWxkICREeW5hbWljRmllbGRDb25maWctPntMYWJlbH0gaW52YWxpZCI7CgogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAkRXJyb3JNZXNzYWdlLAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgICMgc2VuZCBlbWFpbAogICAgbXkgJVN0YXRlRGF0YSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpTdGF0ZScpLT5TdGF0ZUdldCgKICAgICAgICBJRCA9PiAkUGFyYW17U3RhdGVJRH0sCiAgICApOwoKICAgICMgZ2V0IHRpbWUgb2JqZWN0CiAgICBteSAkVGltZU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpUaW1lJyk7CgogICAgIyBjaGVjayBwZW5kaW5nIGRhdGUKICAgIGlmICggJFN0YXRlRGF0YXtUeXBlTmFtZX0gJiYgJFN0YXRlRGF0YXtUeXBlTmFtZX0gPX4gL15wZW5kaW5nL2kgKSB7CiAgICAgICAgaWYgKCAhJFRpbWVPYmplY3QtPlRpbWVTdGFtcDJTeXN0ZW1UaW1lKCBTdHJpbmcgPT4gJFBhcmFte1BlbmRpbmdEYXRlfSApICkgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAnRGF0ZSBpbnZhbGlkJywKICAgICAgICAgICAgKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgICAgICBpZiAoCiAgICAgICAgICAgICRUaW1lT2JqZWN0LT5UaW1lU3RhbXAyU3lzdGVtVGltZSggU3RyaW5nID0+ICRQYXJhbXtQZW5kaW5nRGF0ZX0gKQogICAgICAgICAgICA8ICRUaW1lT2JqZWN0LT5TeXN0ZW1UaW1lKCkKICAgICAgICAgICAgKQogICAgICAgIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gJ0RhdGUgaW52YWxpZCcsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CiAgICB9CgogICAgIyBnZXQgY2hlY2sgaXRlbSBvYmplY3QKICAgIG15ICRDaGVja0l0ZW1PYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6Q2hlY2tJdGVtJyk7CgogICAgIyBjaGVjayBzb21lIHZhbHVlcwogICAgUkVDSVBJRU5UOgogICAgZm9yIG15ICRMaW5lIChxdyhGcm9tIFRvIENjIEJjYykpIHsKICAgICAgICBuZXh0IFJFQ0lQSUVOVCBpZiAhJFBhcmFteyRMaW5lfTsKICAgICAgICBmb3IgbXkgJEVtYWlsICggTWFpbDo6QWRkcmVzcy0+cGFyc2UoICRQYXJhbXskTGluZX0gKSApIHsKICAgICAgICAgICAgaWYgKCAhJENoZWNrSXRlbU9iamVjdC0+Q2hlY2tFbWFpbCggQWRkcmVzcyA9PiAkRW1haWwtPmFkZHJlc3MoKSApICkgewogICAgICAgICAgICAgICAgbXkgJFNlcnZlckVycm9yID0gJENoZWNrSXRlbU9iamVjdC0+Q2hlY2tFcnJvcigpOwogICAgICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiRXJyb3Igb24gZmllbGQgXCIkTGluZVwiIFxuICRTZXJ2ZXJFcnJvciIsCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgICMgcmVwbGFjZSA8T1RSU19USUNLRVRfU1RBVEU+IHdpdGggbmV4dCB0aWNrZXQgc3RhdGUgbmFtZQogICAgaWYgKCAkU3RhdGVEYXRhe05hbWV9ICkgewogICAgICAgICRQYXJhbXtCb2R5fSA9fiBzLzxPVFJTX1RJQ0tFVF9TVEFURT4vJFN0YXRlRGF0YXtOYW1lfS9nOwogICAgICAgICRQYXJhbXtCb2R5fSA9fiBzLyZsdDtPVFJTX1RJQ0tFVF9TVEFURSZndDsvJFN0YXRlRGF0YXtOYW1lfS9nOwogICAgfQoKICAgICMgZ2V0IHJlY2lwaWVudHMKICAgIG15ICRSZWNpcGllbnRzID0gJyc7CiAgICBmb3IgbXkgJExpbmUgKHF3KFRvIENjIEJjYykpIHsKICAgICAgICBpZiAoICRQYXJhbXskTGluZX0gKSB7CiAgICAgICAgICAgIGlmICgkUmVjaXBpZW50cykgewogICAgICAgICAgICAgICAgJFJlY2lwaWVudHMgLj0gJywnOwogICAgICAgICAgICB9CiAgICAgICAgICAgICRSZWNpcGllbnRzIC49ICRQYXJhbXskTGluZX07CiAgICAgICAgfQogICAgfQoKICAgIG15ICRNaW1lVHlwZSA9ICd0ZXh0L3BsYWluJzsKCiAgICAjIHNlbmQgZW1haWwKICAgIG15ICRBcnRpY2xlSUQgPSAkVGlja2V0T2JqZWN0LT5BcnRpY2xlU2VuZCgKICAgICAgICBBcnRpY2xlVHlwZSAgICA9PiAnZW1haWwtZXh0ZXJuYWwnLAogICAgICAgIFNlbmRlclR5cGUgICAgID0+ICdhZ2VudCcsCiAgICAgICAgVGlja2V0SUQgICAgICAgPT4gJFBhcmFte1RpY2tldElEfSwKICAgICAgICBIaXN0b3J5VHlwZSAgICA9PiAnU2VuZEFuc3dlcicsCiAgICAgICAgSGlzdG9yeUNvbW1lbnQgPT4gIlwlXCUkUmVjaXBpZW50cyIsCiAgICAgICAgRnJvbSAgICAgICAgICAgPT4gJFBhcmFte0Zyb219LAogICAgICAgIFRvICAgICAgICAgICAgID0+ICRQYXJhbXtUb30sCiAgICAgICAgQ2MgICAgICAgICAgICAgPT4gJFBhcmFte0NjfSwKICAgICAgICBCY2MgICAgICAgICAgICA9PiAkUGFyYW17QmNjfSwKICAgICAgICBTdWJqZWN0ICAgICAgICA9PiAkUGFyYW17U3ViamVjdH0sCiAgICAgICAgVXNlcklEICAgICAgICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgQm9keSAgICAgICAgICAgPT4gJFBhcmFte0JvZHl9LAogICAgICAgIEluUmVwbHlUbyAgICAgID0+ICRQYXJhbXtJblJlcGx5VG99LAogICAgICAgIFJlZmVyZW5jZXMgICAgID0+ICRQYXJhbXtSZWZlcmVuY2VzfSwKICAgICAgICBDaGFyc2V0ICAgICAgICA9PiAkQ29uZmlnT2JqZWN0LT5HZXQoJ0RlZmF1bHRDaGFyc2V0JyksCiAgICAgICAgTWltZVR5cGUgICAgICAgPT4gJE1pbWVUeXBlLAogICAgKTsKCiAgICAjIGVycm9yIHBhZ2UKICAgIGlmICggISRBcnRpY2xlSUQgKSB7CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICdFcnJvciBubyBBcnRpY2xlIGNyZWF0ZWQhIFBsZWFzZSBjb250YWN0IHRoZSBhZG1pbicsCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgIyB0aW1lIGFjY291bnRpbmcKICAgIGlmICggJFBhcmFte1RpbWVVbml0c30gKSB7CiAgICAgICAgJFRpY2tldE9iamVjdC0+VGlja2V0QWNjb3VudFRpbWUoCiAgICAgICAgICAgIFRpY2tldElEICA9PiAkUGFyYW17VGlja2V0SUR9LAogICAgICAgICAgICBBcnRpY2xlSUQgPT4gJEFydGljbGVJRCwKICAgICAgICAgICAgVGltZVVuaXQgID0+ICRQYXJhbXtUaW1lVW5pdHN9LAogICAgICAgICAgICBVc2VySUQgICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgKTsKICAgIH0KCiAgICAjIHNldCBkeW5hbWljIGZpZWxkcwogICAgIyBjeWNsZSB0cm91Z2ggdGhlIGFjdGl2YXRlZCBEeW5hbWljIEZpZWxkcyBmb3IgdGhpcyBzY3JlZW4KICAgIERZTkFNSUNGSUVMRDoKICAgIGZvciBteSAkRHluYW1pY0ZpZWxkQ29uZmlnICggQHsgJFNlbGYtPntEeW5hbWljRmllbGR9IH0gKSB7CiAgICAgICAgbmV4dCBEWU5BTUlDRklFTEQgaWYgIUlzSGFzaFJlZldpdGhEYXRhKCREeW5hbWljRmllbGRDb25maWcpOwoKICAgICAgICAjIHNldCB0aGUgb2JqZWN0IElEIChUaWNrZXRJRCBvciBBcnRpY2xlSUQpIGRlcGVuZGluZyBvbiB0aGUgZmllbGQgY29uZmlndXJhdGlvbgogICAgICAgIG15ICRPYmplY3RJRCA9ICREeW5hbWljRmllbGRDb25maWctPntPYmplY3RUeXBlfSBlcSAnQXJ0aWNsZScgPyAkQXJ0aWNsZUlEIDogJFBhcmFte1RpY2tldElEfTsKCiAgICAgICAgIyBzZXQgdGhlIHZhbHVlCiAgICAgICAgbXkgJFN1Y2Nlc3MgPSAkRHluYW1pY0ZpZWxkQmFja2VuZE9iamVjdC0+VmFsdWVTZXQoCiAgICAgICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyA9PiAkRHluYW1pY0ZpZWxkQ29uZmlnLAogICAgICAgICAgICBPYmplY3RJRCAgICAgICAgICAgPT4gJE9iamVjdElELAogICAgICAgICAgICBWYWx1ZSAgICAgICAgICAgICAgPT4gJER5bmFtaWNGaWVsZFZhbHVlc3sgJER5bmFtaWNGaWVsZENvbmZpZy0+e05hbWV9IH0sCiAgICAgICAgICAgIFVzZXJJRCAgICAgICAgICAgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICApOwogICAgfQoKICAgICMgc2V0IHN0YXRlCiAgICBpZiAoICRTZWxmLT57Q29uZmlnfS0+e1N0YXRlfSAmJiAkUGFyYW17U3RhdGVJRH0gKSB7CiAgICAgICAgJFRpY2tldE9iamVjdC0+VGlja2V0U3RhdGVTZXQoCiAgICAgICAgICAgIFRpY2tldElEID0+ICRQYXJhbXtUaWNrZXRJRH0sCiAgICAgICAgICAgIFN0YXRlSUQgID0+ICRQYXJhbXtTdGF0ZUlEfSwKICAgICAgICAgICAgVXNlcklEICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgKTsKICAgIH0KCiAgICAjIHNob3VsZCBJIHNldCBhbiB1bmxvY2s/CiAgICBpZiAoICRTdGF0ZURhdGF7VHlwZU5hbWV9ID1+IC9eY2xvc2UvaSApIHsKICAgICAgICAkVGlja2V0T2JqZWN0LT5UaWNrZXRMb2NrU2V0KAogICAgICAgICAgICBUaWNrZXRJRCA9PiAkUGFyYW17VGlja2V0SUR9LAogICAgICAgICAgICBMb2NrICAgICA9PiAndW5sb2NrJywKICAgICAgICAgICAgVXNlcklEICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgKTsKICAgIH0KCiAgICAjIHNldCBwZW5kaW5nIHRpbWUKICAgIGVsc2lmICggJFN0YXRlRGF0YXtUeXBlTmFtZX0gPX4gL15wZW5kaW5nL2kgKSB7CiAgICAgICAgJFRpY2tldE9iamVjdC0+VGlja2V0UGVuZGluZ1RpbWVTZXQoCiAgICAgICAgICAgIFVzZXJJRCAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICBUaWNrZXRJRCA9PiAkUGFyYW17VGlja2V0SUR9LAogICAgICAgICAgICBTdHJpbmcgICA9PiAkUGFyYW17UGVuZGluZ0RhdGV9LAogICAgICAgICk7CiAgICB9CgogICAgIyBsb2cgdXNlIHJlc3BvbnNlIGlkIGFuZCByZXBseSBhcnRpY2xlIGlkICh1c2VmdWwgZm9yIHJlc3BvbnNlIGRpYWdub3N0aWNzKQogICAgbXkgJEhpc3RvcnlOYW1lOwogICAgaWYgKCAkUGFyYW17UmVwbHlBcnRpY2xlSUR9ICkgewogICAgICAgICRIaXN0b3J5TmFtZSA9ICJSZXNwb25zZSBmcm9tIGlQaG9uZSAvJFBhcmFte1JlcGx5QXJ0aWNsZUlEfS8kQXJ0aWNsZUlEKSI7CiAgICB9CiAgICBlbHNlIHsKICAgICAgICAkSGlzdG9yeU5hbWUgPSAiUmVzcG9uc2UgZnJvbSBpUGhvbmUgLyRBcnRpY2xlSUQpIjsKICAgIH0KICAgICRUaWNrZXRPYmplY3QtPkhpc3RvcnlBZGQoCiAgICAgICAgTmFtZSAgICAgICAgID0+ICRIaXN0b3J5TmFtZSwKICAgICAgICBIaXN0b3J5VHlwZSAgPT4gJ01pc2MnLAogICAgICAgIFRpY2tldElEICAgICA9PiAkUGFyYW17VGlja2V0SUR9LAogICAgICAgIENyZWF0ZVVzZXJJRCA9PiAkUGFyYW17VXNlcklEfSwKICAgICk7CiAgICByZXR1cm4gJEFydGljbGVJRDsKfQoKc3ViIF9UaWNrZXRNb3ZlIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBjaGVjayBuZWVkZWQgc3R1ZmYKICAgIGZvciAocXcoVGlja2V0SUQpKSB7CiAgICAgICAgaWYgKCAhJFBhcmFteyRffSApIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIk5vICRfIGlzIGdpdmVuISBQbGVhc2UgY29udGFjdCB0aGUgYWRtaW4uIiwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KICAgIH0KCiAgICAjIGdldCBjb25maWcgb2JqZWN0CiAgICBteSAkQ29uZmlnT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKTsKCiAgICAkU2VsZi0+e0NvbmZpZ30gPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ2lQaG9uZTo6RnJvbnRlbmQ6OkFnZW50VGlja2V0TW92ZScpOwoKICAgICMgZ2V0IHRpY2tldCBvYmplY3QKICAgIG15ICRUaWNrZXRPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VGlja2V0Jyk7CgogICAgIyBjaGVjayBwZXJtaXNzaW9ucwogICAgbXkgJEFjY2VzcyA9ICRUaWNrZXRPYmplY3QtPlRpY2tldFBlcm1pc3Npb24oCiAgICAgICAgVHlwZSAgICAgPT4gJ21vdmUnLAogICAgICAgIFRpY2tldElEID0+ICRQYXJhbXtUaWNrZXRJRH0sCiAgICAgICAgVXNlcklEICAgPT4gJFBhcmFte1VzZXJJRH0KICAgICk7CgogICAgIyBlcnJvciBzY3JlZW4sIGRvbid0IHNob3cgdGlja2V0CiAgICBpZiAoICEkQWNjZXNzICkgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAiWW91IG5lZWQgJFNlbGYtPntDb25maWd9LT57UGVybWlzc2lvbn0gcGVybWlzc2lvbnMhIiwKICAgICAgICApOwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICAjIGdldCBsb2NrIHN0YXRlCiAgICBpZiAoICRTZWxmLT57Q29uZmlnfS0+e1JlcXVpcmVkTG9ja30gKSB7CiAgICAgICAgbXkgJExvY2tlZCA9ICRUaWNrZXRPYmplY3QtPlRpY2tldExvY2tHZXQoIFRpY2tldElEID0+ICRQYXJhbXtUaWNrZXRJRH0gKTsKICAgICAgICBpZiAoICEkTG9ja2VkICkgewogICAgICAgICAgICAkVGlja2V0T2JqZWN0LT5UaWNrZXRMb2NrU2V0KAogICAgICAgICAgICAgICAgVGlja2V0SUQgPT4gJFBhcmFte1RpY2tldElEfSwKICAgICAgICAgICAgICAgIExvY2sgICAgID0+ICdsb2NrJywKICAgICAgICAgICAgICAgIFVzZXJJRCAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICApOwoKICAgICAgICAgICAgbXkgJFN1Y2Nlc3MgPSAkVGlja2V0T2JqZWN0LT5UaWNrZXRPd25lclNldCgKICAgICAgICAgICAgICAgIFRpY2tldElEICA9PiAkUGFyYW17VGlja2V0SUR9LAogICAgICAgICAgICAgICAgVXNlcklEICAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICAgICAgTmV3VXNlcklEID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICApOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgbXkgJEFjY2Vzc09rID0gJFRpY2tldE9iamVjdC0+T3duZXJDaGVjaygKICAgICAgICAgICAgICAgIFRpY2tldElEID0+ICRQYXJhbXtUaWNrZXRJRH0sCiAgICAgICAgICAgICAgICBPd25lcklEICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICAgICAgKTsKICAgICAgICAgICAgaWYgKCAhJEFjY2Vzc09rICkgewogICAgICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiU29ycnksIHlvdSBuZWVkIHRvIGJlIHRoZSBvd25lciB0byBkbyB0aGlzIGFjdGlvbiEgIgogICAgICAgICAgICAgICAgICAgICAgICAuICJQbGVhc2UgY2hhbmdlIHRoZSBvd25lciBmaXJzdC4iLAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICAjIHRpY2tldCBhdHRyaWJ1dGVzCiAgICBteSAlVGlja2V0ID0gJFRpY2tldE9iamVjdC0+VGlja2V0R2V0KCBUaWNrZXRJRCA9PiAkUGFyYW17VGlja2V0SUR9ICk7CgogICAgIyB0cmFuc2Zvcm0gcGVuZGluZyB0aW1lLCB0aW1lIHN0YW1wIGJhc2VkIG9uIHVzZXIgdGltZSB6b25lCiAgICBpZiAoIElzU3RyaW5nV2l0aERhdGEoICRQYXJhbXtQZW5kaW5nRGF0ZX0gKSApIHsKICAgICAgICAkUGFyYW17UGVuZGluZ0RhdGV9ID0gJFNlbGYtPl9UcmFuc2Zvcm1EYXRlU2VsZWN0aW9uKAogICAgICAgICAgICBUaW1lU3RhbXAgICAgPT4gJFBhcmFte1BlbmRpbmdEYXRlfSwKICAgICAgICAgICAgVXNlclRpbWVab25lID0+ICRQYXJhbXtVc2VyVGltZVpvbmV9LAogICAgICAgICk7CiAgICB9CgogICAgIyBnZXQgZHluYW1pYyBmaWVsZCBjb25maWcgZm9yIHRoZSBzY3JlZW4KICAgICRTZWxmLT57RHluYW1pY0ZpZWxkRmlsdGVyfSA9ICRTZWxmLT57Q29uZmlnfS0+e0R5bmFtaWNGaWVsZH07CgogICAgIyBnZXQgdGhlIGR5bmFtaWMgZmllbGRzIGZvciB0aWNrZXQgb2JqZWN0CiAgICAkU2VsZi0+e0R5bmFtaWNGaWVsZH0gPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6RHluYW1pY0ZpZWxkJyktPkR5bmFtaWNGaWVsZExpc3RHZXQoCiAgICAgICAgVmFsaWQgICAgICAgPT4gMSwKICAgICAgICBPYmplY3RUeXBlICA9PiBbICdUaWNrZXQnLCAnQXJ0aWNsZScgXSwKICAgICAgICBGaWVsZEZpbHRlciA9PiAkU2VsZi0+e0R5bmFtaWNGaWVsZEZpbHRlcn0gfHwge30sCiAgICApOwoKICAgIG15ICVEeW5hbWljRmllbGRWYWx1ZXM7CgogICAgIyBnZXQgZHluYW1pYyBmaWVsZCBiYWNrZW5kIG9iamVjdAogICAgbXkgJER5bmFtaWNGaWVsZEJhY2tlbmRPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6RHluYW1pY0ZpZWxkOjpCYWNrZW5kJyk7CgogICAgIyBjeWNsZSB0cm91Z2ggdGhlIGFjdGl2YXRlZCBEeW5hbWljIEZpZWxkcyBmb3IgdGhpcyBzY3JlZW4KICAgIERZTkFNSUNGSUVMRDoKICAgIGZvciBteSAkRHluYW1pY0ZpZWxkQ29uZmlnICggQHsgJFNlbGYtPntEeW5hbWljRmllbGR9IH0gKSB7CiAgICAgICAgbmV4dCBEWU5BTUlDRklFTEQgaWYgIUlzSGFzaFJlZldpdGhEYXRhKCREeW5hbWljRmllbGRDb25maWcpOwogICAgICAgIG5leHQgRFlOQU1JQ0ZJRUxEIGlmICFJc0hhc2hSZWZXaXRoRGF0YSggJER5bmFtaWNGaWVsZENvbmZpZy0+e0NvbmZpZ30gKTsKICAgICAgICBuZXh0IERZTkFNSUNGSUVMRCBpZiAhJER5bmFtaWNGaWVsZENvbmZpZy0+e05hbWV9OwoKICAgICAgICAjIHNraXAgYWxsIGR5bmFtaWMgZmllbGRzIHRoYXQgYXJlIG5vdCBkZXNpZ25lZCByZW5kZXIgaW4gaVBob25lIEFwcAogICAgICAgIG15ICRJc0lQaG9uZUNhcGFibGUgPSAkRHluYW1pY0ZpZWxkQmFja2VuZE9iamVjdC0+SGFzQmVoYXZpb3IoCiAgICAgICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyA9PiAkRHluYW1pY0ZpZWxkQ29uZmlnLAogICAgICAgICAgICBCZWhhdmlvciAgICAgICAgICAgPT4gJ0lzSVBob25lQ2FwYWJsZScsCiAgICAgICAgKTsKICAgICAgICBuZXh0IERZTkFNSUNGSUVMRCBpZiAhJElzSVBob25lQ2FwYWJsZTsKCiAgICAgICAgIyBleHRyYWN0IHRoZSBkeW5hbWljIGZpZWxkIHZhbHVlIGZvcm0gcGFyYW1ldGVycwogICAgICAgICREeW5hbWljRmllbGRWYWx1ZXN7ICREeW5hbWljRmllbGRDb25maWctPntOYW1lfSB9ID0gJER5bmFtaWNGaWVsZEJhY2tlbmRPYmplY3QtPklQaG9uZUZpZWxkVmFsdWVHZXQoCiAgICAgICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyA9PiAkRHluYW1pY0ZpZWxkQ29uZmlnLAogICAgICAgICAgICBUcmFuc2Zvcm1EYXRlcyAgICAgPT4gMSwKICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICk7CgogICAgICAgICMgcGVyZm9ybSB2YWxpZGF0aW9uIG9mIHRoZSBkYXRhCiAgICAgICAgbXkgJFZhbGlkYXRpb25SZXN1bHQgPSAkRHluYW1pY0ZpZWxkQmFja2VuZE9iamVjdC0+SVBob25lRmllbGRWYWx1ZVZhbGlkYXRlKAogICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgPT4gJER5bmFtaWNGaWVsZENvbmZpZywKICAgICAgICAgICAgVmFsdWUgICAgICAgICAgICAgID0+ICREeW5hbWljRmllbGRWYWx1ZXN7ICREeW5hbWljRmllbGRDb25maWctPntOYW1lfSB9LAogICAgICAgICAgICBNYW5kYXRvcnkgICAgICAgICAgPT4gJFNlbGYtPntDb25maWd9LT57RHluYW1pY0ZpZWxkfS0+eyAkRHluYW1pY0ZpZWxkQ29uZmlnLT57TmFtZX0gfSA9PSAyLAogICAgICAgICk7CgogICAgICAgIGlmICggIUlzSGFzaFJlZldpdGhEYXRhKCRWYWxpZGF0aW9uUmVzdWx0KSApIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIkNvdWxkIG5vdCBwZXJmb3JtIHZhbGlkYXRpb24gb24gZmllbGQgJER5bmFtaWNGaWVsZENvbmZpZy0+e0xhYmVsfSEiLAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQoKICAgICAgICAjIHByb3BhZ2F0ZSB2YWxpZGF0aW9uIGVycm9yCiAgICAgICAgaWYgKCAkVmFsaWRhdGlvblJlc3VsdC0+e1NlcnZlckVycm9yfSApIHsKCiAgICAgICAgICAgIG15ICRFcnJvck1lc3NhZ2UgPSAkVmFsaWRhdGlvblJlc3VsdC0+e0Vycm9yTWVzc2FnZX0KICAgICAgICAgICAgICAgIHx8ICJEeW5hbWljIGZpZWxkICREeW5hbWljRmllbGRDb25maWctPntMYWJlbH0gaW52YWxpZCI7CgogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAkRXJyb3JNZXNzYWdlLAogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgfQoKICAgICMgRGVzdFF1ZXVlSUQgbG9va3VwCiAgICBpZiAoICEkUGFyYW17UXVldWVJRH0gKSB7CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJObyBRdWV1ZUlEIGlzIGdpdmVuISBQbGVhc2UgY29udGFjdCB0aGUgYWRtaW4uIiwKICAgICAgICApOwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICBpZiAoICRQYXJhbXtPd25lcklEfSApIHsKICAgICAgICAkUGFyYW17TmV3VXNlcklEfSA9ICRQYXJhbXtPd25lcklEfTsKICAgIH0KCiAgICAjIG1vdmUgdGlja2V0IChzZW5kIG5vdGlmaWNhdGlvbiBvZiBubyBuZXcgb3duZXIgaXMgc2VsZWN0ZWQpCiAgICBteSAkQm9keUFzVGV4dCA9ICRQYXJhbXtCb2R5fSB8fCAnJzsKICAgIG15ICRNb3ZlID0gJFRpY2tldE9iamVjdC0+VGlja2V0UXVldWVTZXQoCiAgICAgICAgUXVldWVJRCAgICAgICAgICAgID0+ICRQYXJhbXtRdWV1ZUlEfSwKICAgICAgICBVc2VySUQgICAgICAgICAgICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgVGlja2V0SUQgICAgICAgICAgID0+ICRQYXJhbXtUaWNrZXRJRH0sCiAgICAgICAgU2VuZE5vTm90aWZpY2F0aW9uID0+ICRQYXJhbXtOZXdVc2VySUR9LAogICAgICAgIENvbW1lbnQgICAgICAgICAgICA9PiAkQm9keUFzVGV4dCwKICAgICk7CiAgICBpZiAoICEkTW92ZSApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gIkVycm9yOiB0aWNrZXQgbm90IG1vdmVkISBQbGVhc2UgY29udGFjdCB0aGUgYWRtaW4uIiwKICAgICAgICApOwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICAjIHNldCBwcmlvcml0eQogICAgaWYgKCAkU2VsZi0+e0NvbmZpZ30tPntQcmlvcml0eX0gJiYgJFBhcmFte1ByaW9yaXR5SUR9ICkgewogICAgICAgICRUaWNrZXRPYmplY3QtPlRpY2tldFByaW9yaXR5U2V0KAogICAgICAgICAgICBUaWNrZXRJRCAgID0+ICRQYXJhbXtUaWNrZXRJRH0sCiAgICAgICAgICAgIFByaW9yaXR5SUQgPT4gJFBhcmFte1ByaW9yaXR5SUR9LAogICAgICAgICAgICBVc2VySUQgICAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICk7CiAgICB9CgogICAgIyBzZXQgc3RhdGUKICAgIGlmICggJFNlbGYtPntDb25maWd9LT57U3RhdGV9ICYmICRQYXJhbXtTdGF0ZUlEfSApIHsKCiAgICAgICAgJFRpY2tldE9iamVjdC0+VGlja2V0U3RhdGVTZXQoCiAgICAgICAgICAgIFRpY2tldElEID0+ICRQYXJhbXtUaWNrZXRJRH0sCiAgICAgICAgICAgIFN0YXRlSUQgID0+ICRQYXJhbXtTdGF0ZUlEfSwKICAgICAgICAgICAgVXNlcklEICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgKTsKCiAgICAgICAgIyB1bmxvY2sgdGhlIHRpY2tldCBhZnRlciBjbG9zZQogICAgICAgIG15ICVTdGF0ZURhdGEgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6U3RhdGUnKS0+U3RhdGVHZXQoCiAgICAgICAgICAgIElEID0+ICRQYXJhbXtTdGF0ZUlEfSwKICAgICAgICApOwoKICAgICAgICAjIHNldCB1bmxvY2sgb24gY2xvc2Ugc3RhdGUKICAgICAgICBpZiAoICRTdGF0ZURhdGF7VHlwZU5hbWV9ID1+IC9eY2xvc2UvaSApIHsKICAgICAgICAgICAgJFRpY2tldE9iamVjdC0+VGlja2V0TG9ja1NldCgKICAgICAgICAgICAgICAgIFRpY2tldElEID0+ICRQYXJhbXtUaWNrZXRJRH0sCiAgICAgICAgICAgICAgICBMb2NrICAgICA9PiAndW5sb2NrJywKICAgICAgICAgICAgICAgIFVzZXJJRCAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICApOwogICAgICAgIH0KICAgIH0KCiAgICAjIGNoZWNrIGlmIG5ldyB1c2VyIGlzIGdpdmVuIGFuZCBzZW5kIG5vdGlmaWNhdGlvbgogICAgaWYgKCAkUGFyYW17TmV3VXNlcklEfSApIHsKCiAgICAgICAgIyBsb2NrCiAgICAgICAgJFRpY2tldE9iamVjdC0+VGlja2V0TG9ja1NldCgKICAgICAgICAgICAgVGlja2V0SUQgPT4gJFBhcmFte1RpY2tldElEfSwKICAgICAgICAgICAgTG9jayAgICAgPT4gJ2xvY2snLAogICAgICAgICAgICBVc2VySUQgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICApOwoKICAgICAgICAjIHNldCBvd25lcgogICAgICAgICRUaWNrZXRPYmplY3QtPlRpY2tldE93bmVyU2V0KAogICAgICAgICAgICBUaWNrZXRJRCAgPT4gJFBhcmFte1RpY2tldElEfSwKICAgICAgICAgICAgVXNlcklEICAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICBOZXdVc2VySUQgPT4gJFBhcmFte05ld1VzZXJJRH0sCiAgICAgICAgICAgIENvbW1lbnQgICA9PiAkQm9keUFzVGV4dCwKICAgICAgICApOwogICAgfQoKICAgICMgZm9yY2UgdW5sb2NrIGlmIG5vIG5ldyBvd25lciBpcyBzZXQgYW5kIHRpY2tldCB3YXMgdW5sb2NrZWQKICAgIGVsc2UgewogICAgICAgIGlmICggJFNlbGYtPntUaWNrZXRVbmxvY2t9ICkgewogICAgICAgICAgICAkVGlja2V0T2JqZWN0LT5UaWNrZXRMb2NrU2V0KAogICAgICAgICAgICAgICAgVGlja2V0SUQgPT4gJFBhcmFte1RpY2tldElEfSwKICAgICAgICAgICAgICAgIExvY2sgICAgID0+ICd1bmxvY2snLAogICAgICAgICAgICAgICAgVXNlcklEICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgICk7CiAgICAgICAgfQogICAgfQoKICAgICMgYWRkIG5vdGUgKHNlbmQgbm8gbm90aWZpY2F0aW9uKQogICAgbXkgJE1pbWVUeXBlID0gJ3RleHQvcGxhaW4nOwoKICAgIG15ICVVc2VyRGF0YSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVc2VyJyktPkdldFVzZXJEYXRhKAogICAgICAgIFVzZXJJRCA9PiAkUGFyYW17VXNlcklEfSwKICAgICk7CgogICAgbXkgJEFydGljbGVJRCA9ICRUaWNrZXRPYmplY3QtPkFydGljbGVDcmVhdGUoCiAgICAgICAgVGlja2V0SUQgICAgICAgPT4gJFBhcmFte1RpY2tldElEfSwKICAgICAgICBBcnRpY2xlVHlwZSAgICA9PiAnbm90ZS1pbnRlcm5hbCcsCiAgICAgICAgU2VuZGVyVHlwZSAgICAgPT4gJ2FnZW50JywKICAgICAgICBGcm9tICAgICAgICAgICA9PiAiJFVzZXJEYXRhe1VzZXJGaXJzdG5hbWV9ICRVc2VyRGF0YXtVc2VyTGFzdG5hbWV9IDwkVXNlckRhdGF7VXNlckVtYWlsfT4iLAogICAgICAgIFN1YmplY3QgICAgICAgID0+ICRQYXJhbXtTdWJqZWN0fSwKICAgICAgICBCb2R5ICAgICAgICAgICA9PiAkUGFyYW17Qm9keX0sCiAgICAgICAgTWltZVR5cGUgICAgICAgPT4gJE1pbWVUeXBlLAogICAgICAgIENoYXJzZXQgICAgICAgID0+ICRDb25maWdPYmplY3QtPkdldCgnRGVmYXVsdENoYXJzZXQnKSwKICAgICAgICBVc2VySUQgICAgICAgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICBIaXN0b3J5VHlwZSAgICA9PiAnQWRkTm90ZScsCiAgICAgICAgSGlzdG9yeUNvbW1lbnQgPT4gJyUlTW92ZScsCiAgICAgICAgTm9BZ2VudE5vdGlmeSAgPT4gMSwKICAgICk7CgogICAgaWYgKCAhJEFydGljbGVJRCApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gIkVycm9yOiBDYW4ndCBjcmVhdGUgYW4gYXJ0aWNsZSBmb3IgdGhlIG1vdmVkIHRpY2tldCIsCiAgICAgICAgKTsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgIyBzZXQgZHluYW1pYyBmaWVsZHMKICAgICMgY3ljbGUgdHJvdWdoIHRoZSBhY3RpdmF0ZWQgRHluYW1pYyBGaWVsZHMgZm9yIHRoaXMgc2NyZWVuCiAgICBEWU5BTUlDRklFTEQ6CiAgICBmb3IgbXkgJER5bmFtaWNGaWVsZENvbmZpZyAoIEB7ICRTZWxmLT57RHluYW1pY0ZpZWxkfSB9ICkgewogICAgICAgIG5leHQgRFlOQU1JQ0ZJRUxEIGlmICFJc0hhc2hSZWZXaXRoRGF0YSgkRHluYW1pY0ZpZWxkQ29uZmlnKTsKCiAgICAgICAgIyBzZXQgdGhlIG9iamVjdCBJRCAoVGlja2V0SUQgb3IgQXJ0aWNsZUlEKSBkZXBlbmRpbmcgb24gdGhlIGZpZWxkIGNvbmZpZ3VyYXRpb24KICAgICAgICBteSAkT2JqZWN0SUQgPSAkRHluYW1pY0ZpZWxkQ29uZmlnLT57T2JqZWN0VHlwZX0gZXEgJ0FydGljbGUnID8gJEFydGljbGVJRCA6ICRQYXJhbXtUaWNrZXRJRH07CgogICAgICAgICMgc2V0IHRoZSB2YWx1ZQogICAgICAgIG15ICRTdWNjZXNzID0gJER5bmFtaWNGaWVsZEJhY2tlbmRPYmplY3QtPlZhbHVlU2V0KAogICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgPT4gJER5bmFtaWNGaWVsZENvbmZpZywKICAgICAgICAgICAgT2JqZWN0SUQgICAgICAgICAgID0+ICRPYmplY3RJRCwKICAgICAgICAgICAgVmFsdWUgICAgICAgICAgICAgID0+ICREeW5hbWljRmllbGRWYWx1ZXN7ICREeW5hbWljRmllbGRDb25maWctPntOYW1lfSB9LAogICAgICAgICAgICBVc2VySUQgICAgICAgICAgICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgKTsKICAgIH0KCiAgICAjIHRpbWUgYWNjb3VudGluZwogICAgaWYgKCAkUGFyYW17VGltZVVuaXRzfSApIHsKICAgICAgICAkVGlja2V0T2JqZWN0LT5UaWNrZXRBY2NvdW50VGltZSgKICAgICAgICAgICAgVGlja2V0SUQgID0+ICRQYXJhbXtUaWNrZXRJRH0sCiAgICAgICAgICAgIEFydGljbGVJRCA9PiAkQXJ0aWNsZUlELAogICAgICAgICAgICBUaW1lVW5pdCAgPT4gJFBhcmFte1RpbWVVbml0c30sCiAgICAgICAgICAgIFVzZXJJRCAgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICAgICApOwogICAgfQoKICAgIGlmICgkQXJ0aWNsZUlEKSB7CiAgICAgICAgcmV0dXJuICRBcnRpY2xlSUQ7CiAgICB9CiAgICBlbHNlIHsKICAgICAgICBpZiAoJE1vdmUpIHsKICAgICAgICAgICAgcmV0dXJuICRQYXJhbXtRdWV1ZUlEfTsKICAgICAgICB9CiAgICB9CiAgICByZXR1cm4gLTE7Cn0KCnN1YiBfVHJhbnNmb3JtRGF0ZVNlbGVjdGlvbiB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgdGltZSB6b25lIHRyYW5zbGF0aW9uIGlmIG5lZWRlZAogICAgaWYgKCAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpLT5HZXQoJ1RpbWVab25lVXNlcicpICYmICRQYXJhbXtVc2VyVGltZVpvbmV9ICkgewoKICAgICAgICAjIG1ha2Ugc3VyZSB0aW1lIG9iamVjdCBoYXMgbm8gdXNlciB0aW1lIHpvbmUKICAgICAgICAkS2VybmVsOjpPTS0+T2JqZWN0c0Rpc2NhcmQoIE9iamVjdHMgPT4gWydLZXJuZWw6OlN5c3RlbTo6VGltZSddICk7CiAgICAgICAgbXkgJFN5c3RlbVRpbWUgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VGltZScpLT5UaW1lU3RhbXAyU3lzdGVtVGltZSgKICAgICAgICAgICAgU3RyaW5nID0+ICRQYXJhbXtUaW1lU3RhbXB9LAogICAgICAgICk7CiAgICAgICAgJFN5c3RlbVRpbWUgPSAkU3lzdGVtVGltZSAtICggJFBhcmFte1VzZXJUaW1lWm9uZX0gKiAzNjAwICk7CgogICAgICAgICMgbWFrZSBzdXJlIHRpbWUgb2JqZWN0IG5vdyBoYXMgdGhlIHVzZXIgdGltZSB6b25lCiAgICAgICAgJEtlcm5lbDo6T00tPk9iamVjdHNEaXNjYXJkKCBPYmplY3RzID0+IFsnS2VybmVsOjpTeXN0ZW06OlRpbWUnXSApOwogICAgICAgICRLZXJuZWw6Ok9NLT5PYmplY3RQYXJhbUFkZCgKICAgICAgICAgICAgJ0tlcm5lbDo6U3lzdGVtOjpUaW1lJyA9PiB7CiAgICAgICAgICAgICAgICBVc2VyVGltZVpvbmUgPT4gJFBhcmFte1VzZXJUaW1lWm9uZX0sCiAgICAgICAgICAgIH0sCiAgICAgICAgKTsKCiAgICAgICAgIyBnZXQgdGltZSBvYmplY3QKICAgICAgICBteSAkVGltZU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpUaW1lJyk7CgogICAgICAgICRQYXJhbXtUaW1lU3RhbXB9ID0gJFRpbWVPYmplY3QtPlN5c3RlbVRpbWUyVGltZVN0YW1wKCBTeXN0ZW1UaW1lID0+ICRTeXN0ZW1UaW1lICk7CiAgICB9CiAgICByZXR1cm4gJFBhcmFte1RpbWVTdGFtcH07Cn0KCjE7Cgo9YmFjawoKPWhlYWQxIFRFUk1TIEFORCBDT05ESVRJT05TCgpUaGlzIHNvZnR3YXJlIGlzIHBhcnQgb2YgdGhlIE9UUlMgcHJvamVjdCAoTDxodHRwczovL290cnMub3JnLz4pLgoKVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoR1BMKS4gSWYgeW91CmRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBMPGh0dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvZ3BsLTMuMC50eHQ+LgoKPWN1dAo=
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE4IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6U3lzdGVtOjppUGhvbmVIYW5kbGU6OlNjcmVlbkNvbmZpZzsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCnVzZSBLZXJuZWw6OlN5c3RlbTo6VmFyaWFibGVDaGVjayBxdyg6YWxsKTsKCm91ciBAT2JqZWN0RGVwZW5kZW5jaWVzID0gKAogICAgJ0tlcm5lbDo6Q29uZmlnJywKICAgICdLZXJuZWw6OlN5c3RlbTo6Q2hlY2tJdGVtJywKICAgICdLZXJuZWw6OlN5c3RlbTo6Q3VzdG9tZXJVc2VyJywKICAgICdLZXJuZWw6OlN5c3RlbTo6REInLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQ6OkJhY2tlbmQnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpHcm91cCcsCiAgICAnS2VybmVsOjpMYW5ndWFnZScsCiAgICAnS2VybmVsOjpTeXN0ZW06OkxvZycsCiAgICAnS2VybmVsOjpTeXN0ZW06OlByaW9yaXR5JywKICAgICdLZXJuZWw6OlN5c3RlbTo6UXVldWUnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpTdGF0ZScsCiAgICAnS2VybmVsOjpTeXN0ZW06OlN5c3RlbUFkZHJlc3MnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpUZW1wbGF0ZUdlbmVyYXRvcicsCiAgICAnS2VybmVsOjpTeXN0ZW06OlRpY2tldCcsCiAgICAnS2VybmVsOjpTeXN0ZW06OlVzZXInLAopOwoKPWhlYWQxIE5BTUUKCktlcm5lbDo6U3lzdGVtOjppUGhvbmVIYW5kbGU6OlNjcmVlbkNvbmZpZyAtIHN1YiBtb2R1bGUgb2YgS2VybmVsOjpTeXN0ZW06OmlQaG9uZUhhbmRsZQoKPWhlYWQxIFNZTk9QU0lTCgpTY3JlZW5Db25maWcgY29tbW9uIGZ1bmN0aW9ucy4KCj1oZWFkMSBQVUJMSUMgSU5URVJGQUNFCgo9b3ZlciA0Cgo9Y3V0Cgo9aXRlbSBTY3JlZW5Db25maWcoKQpHZXQgZmllbGRzIGRlZmluaXRpb24gZm9yIGVhY2ggc2NyZWVuIChQaG9uZSwgTm90ZSwgQ2xvc2UsIENvbXBvc2Ugb3IgTW92ZSkKClBob25lICAgKE5ldyBwaG9uZSB0aWNrZXQpCk5vdGUgICAgKEFkZCBhIG5vdGUgdG8gYSBUaWNrZXQpCkNsb3NlICAgKENsb3NlIGEgdGlja2V0KQpDb21wb3NlIChSZXBseSBvciByZXNwb25zZSBhIHRpY2tldCkKTW92ZSAgICAoQ2hhbmdlIHRpY2tldCBxdWV1ZSkKCk5vdGUsIENsb3NlLCBDb21wb3NlIGFuZCBNb3ZlLCByZXF1aXJlcyBUaWNrZXRJRCBhcmd1bWVudAoKVGhlIGZpZWxkcyB0aGF0IGFyZSByZXR1cm5lZCBkZXBlbmQgb24gdGhlIFNjcmVlbiBBcmd1bWVudCBhbmQgb24gdGhlIFNldHRpbmdzIGluIFN5c0NvbmZpZyBmb3IgdGhlIGlQaG9uZQphcyB3ZWxsIGFzIG9uIGdlbmVyYWwgc2V0dGluZ3MuCgogICAgbXkgQFJlc3VsdCA9ICRpUGhvbmVPYmplY3QtPlNjcmVlbkNvbmZpZygKICAgICAgICBTY3JlZW4gPT4gIlBob25lIiwKICAgICAgICBVc2VySUQgPT4gMSwKICAgICk7CgogICAgbXkgQFJlc3VsdCA9ICRpUGhvbmVPYmplY3QtPlNjcmVlbkNvbmZpZygKICAgICAgICBTY3JlZW4gICA9PiAiTm90ZSIsCiAgICAgICAgVGlja2V0SUQgPT4gMjI0LAogICAgICAgIFVzZXJJRCAgID0+IDEsCiAgICApOwoKICAgICMgYSByZXN1bHQgY291bGQgYmUKCiAgICBAUmVzdWx0ID0gKAogICAgICAgIEFjdGlvbnMgPT4gewogICAgICAgICAgICBQYXJhbWV0ZXJzID0+IHsKICAgICAgICAgICAgICAgIEFjdGlvbiA9PiAiUGhvbmUiLAogICAgICAgICAgICB9LAogICAgICAgICAgICBNZXRob2QgPT4gIlNjcmVlbkFjdGlvbnMiLAogICAgICAgICAgICBPYmplY3QgPT4gIkN1c3RvbU9iamVjdCIsCiAgICAgICAgICAgIFRpdGxlID0+ICJOZXcgUGhvbmUgVGlja2V0IgogICAgICAgfSwKICAgICAgICBFbGVtZW50cyA9PiAoCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE5hbWUgICAgICAgPT4gIlR5cGVJRCIsCiAgICAgICAgICAgICAgICBUaXRsZSAgICAgID0+ICJUeXBlIiwKICAgICAgICAgICAgICAgIERhdGF0eXBlICAgPT4gIlRleHQiLAogICAgICAgICAgICAgICAgVmlld3R5cGUgICA9PiAiUGlja2VyIiwKICAgICAgICAgICAgICAgIE9wdGlvbnMgICAgPT4gewogICAgICAgICAgICAgICAgICAgIDE9PiAiZGVmYXVsdCIsCiAgICAgICAgICAgICAgICAgICAgMj0+ICJSZkMiLAogICAgICAgICAgICAgICAgICAgIDM9PiAiSW5jaWRlbnQiLAogICAgICAgICAgICAgICAgICAgIDQ9PiAiSW5jaWRlbnQ6OlNlcnZpY2VSZXF1ZXN0IiwKICAgICAgICAgICAgICAgICAgICA1PT4gIkluY2lkZW50OjpEaXNhc3RlciIKICAgICAgICAgICAgICAgICAgICA2PT4gIlByb2JsZW0iLAogICAgICAgICAgICAgICAgICAgIDc9PiAiUHJvYmxlbTo6S25vd25FcnJvciIsCiAgICAgICAgICAgICAgICAgICAgOD0+ICJQcm9ibGVtOjpQZW5kaW5nUmZDIiwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICBEZWZhdWx0ICAgPT4iIiwKICAgICAgICAgICAgICAgIE1hbmRhdG9yeSA9PiAxLAogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBOYW1lICAgICAgICAgICA9PiAiQ3VzdG9tZXJVc2VyTG9naW4iLAogICAgICAgICAgICAgICAgVGl0bGUgICAgICAgICAgPT4gIkZyb20gY3VzdG9tZXIiLAogICAgICAgICAgICAgICAgRGF0YXR5cGUgICAgICAgPT4gIlRleHQiLAogICAgICAgICAgICAgICAgVmlld3R5cGUgICAgICAgPT4iQXV0b0NvbXBsZXRpb24iLAogICAgICAgICAgICAgICAgRHluYW1pY09wdGlvbnMgPT4gewogICAgICAgICAgICAgICAgICAgIE9iamVjdCAgICAgPT4gIkN1c3RvbU9iamVjdCIsCiAgICAgICAgICAgICAgICAgICAgTWV0aG9kICAgICA9PiJDdXN0b21lclNlYXJjaCIsCiAgICAgICAgICAgICAgICAgICAgUGFyYW1ldGVycyA9PgogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBTZWFyY2ggPT4gIkN1c3RvbWVyVXNlckxvZ2luIiwKICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICBEZWZhdWx0ICAgICAgICA9PiAiIiwKICAgICAgICAgICAgICAgIE1hbmRhdG9yeSAgICAgID0+IDEsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE5hbWUgICAgICA9PiAiUXVldWVJRCIsCiAgICAgICAgICAgICAgICBUaXRsZSAgICAgPT4gIlRvIHF1ZXVlIiwKICAgICAgICAgICAgICAgIERhdGF0eXBlICA9PiAiVGV4dCIsCiAgICAgICAgICAgICAgICBWaWV3dHlwZSAgPT4gIlBpY2tlciIsCiAgICAgICAgICAgICAgICBPcHRpb25zICAgPT57CiAgICAgICAgICAgICAgICAgICAgICA9PiAiLSIsCiAgICAgICAgICAgICAgICAgICAgMSA9PiAiUG9zdG1hc3RlciIsCiAgICAgICAgICAgICAgICAgICAgMiA9PiAiUmF3IiwKICAgICAgICAgICAgICAgICAgICAzID0+ICJKdW5rIiwKICAgICAgICAgICAgICAgICAgICA0ID0+ICJNaXNjIiwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICBEZWZhdWx0ICAgPT4gIiIsCiAgICAgICAgICAgICAgICBNYW5kYXRvcnkgPT4gMSwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTmFtZSAgICAgICAgICAgPT4gIlNlcnZpY2VJRCIsCiAgICAgICAgICAgICAgICBUaXRsZSAgICAgICAgICA9PiAiU2VydmljZSIsCiAgICAgICAgICAgICAgICBEYXRhdHlwZSAgICAgICA9PiAiVGV4dCIsCiAgICAgICAgICAgICAgICBWaWV3dHlwZSAgICAgICA9PiJQaWNrZXIiLAogICAgICAgICAgICAgICAgRHluYW1pY09wdGlvbnMgPT4gewogICAgICAgICAgICAgICAgICAgIE9iamVjdCAgICAgPT4gIkN1c3RvbU9iamVjdCIKICAgICAgICAgICAgICAgICAgICBNZXRob2QgICAgID0+ICJTZXJ2aWNlc0dldCIsCiAgICAgICAgICAgICAgICAgICAgUGFyYW1ldGVycyA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIEN1c3RvbWVyVXNlcklEID0+ICJDdXN0b21lclVzZXJMb2dpbiIsCiAgICAgICAgICAgICAgICAgICAgICAgIFF1ZXVlSUQgICAgICAgID0+ICJRdWV1ZUlEIiwKICAgICAgICAgICAgICAgICAgICAgICAgVGlja2V0SUQgICAgICAgPT4gIlRpY2tldElEIiwKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIE1hbmRhdG9yeSAgICAgID0+IDAsCiAgICAgICAgICAgICAgICBEZWZhdWx0ICAgICAgICA9PiAiIiwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTmFtZSAgICAgICAgICAgPT4gIlNMQUlEIiwKICAgICAgICAgICAgICAgIFRpdGxlICAgICAgICAgID0+ICJTTEEiLAogICAgICAgICAgICAgICAgRGF0YXR5cGUgICAgICAgPT4gIlRleHQiLAogICAgICAgICAgICAgICAgVmlld3R5cGUgICAgICAgPT4gIlBpY2tlciIsCiAgICAgICAgICAgICAgICBEeW5hbWljT3B0aW9ucyA9PiB7CiAgICAgICAgICAgICAgICAgICAgT2JqZWN0ICAgICA9PiAiQ3VzdG9tT2JqZWN0IiwKICAgICAgICAgICAgICAgICAgICBNZXRob2QgICAgID0+ICJTTEFzR2V0IiwKICAgICAgICAgICAgICAgICAgICBQYXJhbWV0ZXJzID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgQ3VzdG9tZXJVc2VySUQgPT4gIkN1c3RvbWVyVXNlckxvZ2luIiwKICAgICAgICAgICAgICAgICAgICAgICAgUXVldWVJRCAgICAgICAgPT4gIlF1ZXVlSUQiLAogICAgICAgICAgICAgICAgICAgICAgICBTZXJ2aWNlSUQgICAgICA9PiAiU2VydmljZUlEIiwKICAgICAgICAgICAgICAgICAgICAgICAgVGlja2V0SUQgICAgICAgPT4gIlRpY2tldElEIi4KICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIERlZmF1bHQgICAgICAgID0+ICIiLAogICAgICAgICAgICAgICAgTWFuZGF0b3J5ICAgICAgPT4gMCwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTmFtZSAgICAgICAgICAgPT4gIk93bmVySUQiLAogICAgICAgICAgICAgICAgVGl0bGUgICAgICAgICAgPT4gIk93bmVyIiwKICAgICAgICAgICAgICAgIERhdGF0eXBlICAgICAgID0+ICJUZXh0IiwKICAgICAgICAgICAgICAgIFZpZXd0eXBlICAgICAgID0+IlBpY2tlciIsCiAgICAgICAgICAgICAgICBEeW5hbWljT3B0aW9ucyA9PiB7CiAgICAgICAgICAgICAgICAgICAgUGFyYW1ldGVycyA9PiB7CiAgICAgICAgICAgICAgICAgICAgICAgIFF1ZXVlSUQgID0+ICJRdWV1ZUlEIiwKICAgICAgICAgICAgICAgICAgICAgICAgQWxsVXNlcnMgPT4gMSwKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgICAgIE1ldGhvZCAgICAgPT4gIlVzZXJzR2V0IiwKICAgICAgICAgICAgICAgICAgICBPYmplY3QgICAgID0+ICJDdXN0b21PYmplY3QiLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIERlZmF1bHQgICAgICAgID0+ICIiLAogICAgICAgICAgICAgICAgTWFuZGF0b3J5ICAgICAgPT4gMCwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTmFtZSAgICAgICAgICAgPT4gIlJlc3BvbnNpYmxlSUQiLAogICAgICAgICAgICAgICAgVGl0bGUgICAgICAgICAgPT4gIlJlc3BvbnNpYmxlIiwKICAgICAgICAgICAgICAgIERhdGF0eXBlICAgICAgID0+ICJUZXh0IiwKICAgICAgICAgICAgICAgIFZpZXd0eXBlICAgICAgID0+ICJQaWNrZXIiLAogICAgICAgICAgICAgICAgRHluYW1pY09wdGlvbnMgPT4gewogICAgICAgICAgICAgICAgICAgIE9iamVjdCAgICAgPT4gIkN1c3RvbU9iamVjdCIsCiAgICAgICAgICAgICAgICAgICAgTWV0aG9kICAgICA9PiAiVXNlcnNHZXQiLAogICAgICAgICAgICAgICAgICAgIFBhcmFtZXRlcnMgPT4gewogICAgICAgICAgICAgICAgICAgICAgICBRdWV1ZUlEICA9PiAiUXVldWVJRCIsCiAgICAgICAgICAgICAgICAgICAgICAgIEFsbFVzZXJzID0+IDEKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIERlZmF1bHQgICAgICAgID0+ICIiLAogICAgICAgICAgICAgICAgTWFuZGF0b3J5ICAgICAgPT4gMCwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTmFtZSAgICAgID0+ICJTdWJqZWN0IiwKICAgICAgICAgICAgICAgIFRpdGxlICAgICA9PiAiU3ViamVjdCIsCiAgICAgICAgICAgICAgICBEYXRhdHlwZSAgPT4gIlRleHQiLAogICAgICAgICAgICAgICAgVmlld3R5cGUgID0+ICJJbnB1dCIsCiAgICAgICAgICAgICAgICBNYXggICAgICAgPT4gMjUwLAogICAgICAgICAgICAgICAgTWluICAgICAgID0+IDEsCiAgICAgICAgICAgICAgICBEZWZhdWx0ICAgPT4gIiIsCiAgICAgICAgICAgICAgICBNYW5kYXRvcnkgPT4gMSwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTmFtZSAgICAgID0+ICJCb2R5IiwKICAgICAgICAgICAgICAgIFRpdGxlICAgICA9PiAiVGV4dCIsCiAgICAgICAgICAgICAgICBEYXRhdHlwZSAgPT4gIlRleHQiLAogICAgICAgICAgICAgICAgVmlld3R5cGUgID0+ICJUZXh0QXJlYSIsCiAgICAgICAgICAgICAgICBNYXggICAgICAgPT4gMjAwMDAsCiAgICAgICAgICAgICAgICBNaW4gICAgICAgPT4gMSwKICAgICAgICAgICAgICAgIERlZmF1bHQgICA9PiAiIiwKICAgICAgICAgICAgICAgIE1hbmRhdG9yeSA9PiAxLAogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBOYW1lICAgICAgPT4gIkN1c3RvbWVySUQiLAogICAgICAgICAgICAgICAgVGl0bGUgICAgID0+ICJDdXN0b21lcklEIiwKICAgICAgICAgICAgICAgIERhdGF0eXBlICA9PiAiVGV4dCIsCiAgICAgICAgICAgICAgICBWaWV3dHlwZSAgPT4gIklucHV0IiwKICAgICAgICAgICAgICAgIE1heCAgICAgICA9PiAxNTAsCiAgICAgICAgICAgICAgICBNaW4gICAgICAgPT4gMSwKICAgICAgICAgICAgICAgIERlZmF1bHQgICA9PiAiIiwKICAgICAgICAgICAgICAgIE1hbmRhdG9yeSA9PiAwLAogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBOYW1lICAgICAgICAgICA9PiAiU3RhdGVJRCIsCiAgICAgICAgICAgICAgICBUaXRsZSAgICAgICAgICA9PiAiTmV4dCBUaWNrZXQgU3RhdGUiLAogICAgICAgICAgICAgICAgRGF0YXR5cGUgICAgICAgPT4gIlRleHQiLAogICAgICAgICAgICAgICAgVmlld3R5cGUgICAgICAgPT4gIlBpY2tlciIsCiAgICAgICAgICAgICAgICBEeW5hbWljT3B0aW9ucyA9PiB7CiAgICAgICAgICAgICAgICAgICAgTWV0aG9kICAgICA9PiAiTmV4dFN0YXRlc0dldCIsCiAgICAgICAgICAgICAgICAgICAgT2JqZWN0ICAgICA9PiAiQ3VzdG9tT2JqZWN0IiwKICAgICAgICAgICAgICAgICAgICBQYXJhbWV0ZXJzID0+IHsKICAgICAgICAgICAgICAgICAgICAgICAgUXVldWVJRCA9PiAiUXVldWVJRCIsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICBEZWZhdWx0ICAgICAgICA9PiAiNCIsCiAgICAgICAgICAgICAgICBEZWZhdWx0T3B0aW9uICA9PiAib3BlbiIsCiAgICAgICAgICAgICAgICBNYW5kYXRvcnkgICAgICA9PiAxLAogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBOYW1lICAgICAgPT4gIlBlbmRpbmdEYXRlIiwKICAgICAgICAgICAgICAgIFRpdGxlICAgICA9PiAiUGVuZGluZyBEYXRlIChmb3IgcGVuZGluZyogc3RhdGVzKSIKICAgICAgICAgICAgICAgIERhdGF0eXBlICA9PiAiRGF0ZVRpbWUiLAogICAgICAgICAgICAgICAgVmlld3R5cGUgID0+ICJQaWNrZXIiLAogICAgICAgICAgICAgICAgRGVmYXVsdCAgID0+ICIiLAogICAgICAgICAgICAgICAgTWFuZGF0b3J5ID0+IDAsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIE5hbWUgICAgICAgICAgID0+ICJQcmlvcml0eUlEIiwKICAgICAgICAgICAgICAgIFRpdGxlICAgICAgICAgID0+ICJQcmlvcml0eSIKICAgICAgICAgICAgICAgIERhdGF0eXBlICAgICAgID0+ICJUZXh0IiwKICAgICAgICAgICAgICAgIFZpZXd0eXBlICAgICAgID0+ICJQaWNrZXIiLAogICAgICAgICAgICAgICAgRHluYW1pY09wdGlvbnMgPT4gewogICAgICAgICAgICAgICAgICAgIE9iamVjdCAgICAgPT4gIkN1c3RvbU9iamVjdCIKICAgICAgICAgICAgICAgICAgICBNZXRob2QgICAgID0+ICJQcmlvcml0aWVzR2V0IiwKICAgICAgICAgICAgICAgICAgICBQYXJhbWV0ZXJzID0+ICIiLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIERlZmF1bHRPcHRpb24gID0+ICIzIG5vcm1hbCIsCiAgICAgICAgICAgICAgICBEZWZhdWx0ICAgICAgICA9PiAiMyIsCiAgICAgICAgICAgICAgICBNYW5kYXRvcnkgICAgICA9PiAxLAogICAgICAgICAgICB9LAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBOYW1lICAgICAgICA9PiAiRHluYW1pY0ZpZWxkX05hbWVYIiwKICAgICAgICAgICAgICAgIFRpdGxlICAgICAgID0+ICJQcm9kdWN0IiwKICAgICAgICAgICAgICAgIERhdGF0eXBlICAgID0+ICJUZXh0IiwKICAgICAgICAgICAgICAgIFZpZXd0eXBlICAgID0+ICJQaWNrZXIiLAogICAgICAgICAgICAgICAgT3B0aW9ucyAgICAgPT4gewogICAgICAgICAgICAgICAgICAgICAgICAgICAgID0+ICItIiwKICAgICAgICAgICAgICAgICAgICBQaG9uZSAgICA9PiAiUGhvbmUiLAogICAgICAgICAgICAgICAgICAgIE5vdGVib29rID0+ICJOb3RlYm9vayIsCiAgICAgICAgICAgICAgICAgICAgUEMgICAgICAgPT4gIlBDIiwKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICBEZWZhdWx0ICAgICA9PiAiTm90ZWJvb2siLAogICAgICAgICAgICAgICAgTWFuZGF0b3J5ICAgPT4gMCwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgTmFtZSA9PiAiVGltZVVuaXRzIiwKICAgICAgICAgICAgICAgIFRpdGxlID0+ICJUaW1lIHVuaXRzICh3b3JrIHVuaXRzKSIsCiAgICAgICAgICAgICAgICBEYXRhdHlwZSA9PiAiTnVtZXJpYyIsCiAgICAgICAgICAgICAgICBWaWV3dHlwZSA9PiAiSW5wdXQiLAogICAgICAgICAgICAgICAgTWF4ID0+IDEwLAogICAgICAgICAgICAgICAgTWluID0+IDEsCiAgICAgICAgICAgICAgICBEZWZhdWx0ID0+ICIiLAogICAgICAgICAgICAgICAgTWFuZGF0b3J5ID0+IDAsCiAgICAgICAgICAgIH0sCiAgICAgICAgKSwKICAgICk7Cgo9Y3V0CgpzdWIgU2NyZWVuQ29uZmlnIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBkZWZpbmUgYSBuZXcgbGFuZ3VhZ2Ugb2JqZWN0CiAgICAkS2VybmVsOjpPTS0+T2JqZWN0c0Rpc2NhcmQoIE9iamVjdHMgPT4gWydLZXJuZWw6Okxhbmd1YWdlJ10gKTsKICAgICRLZXJuZWw6Ok9NLT5PYmplY3RQYXJhbUFkZCgKICAgICAgICAnS2VybmVsOjpMYW5ndWFnZScgPT4gewogICAgICAgICAgICBVc2VyTGFuZ3VhZ2UgPT4gJFBhcmFte0xhbmd1YWdlfSwKICAgICAgICB9LAogICAgKTsKCiAgICAjIGdldCBjb25maWcgb2JqZWN0CiAgICBteSAkQ29uZmlnT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpDb25maWcnKTsKCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICAjIE5ldyBQaG9uZSBUaWNrZXQgU2NyZWVuCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCgogICAgaWYgKCAkUGFyYW17U2NyZWVufSBlcSAnUGhvbmUnICkgewoKICAgICAgICAjIGdldCBzY3JlZW4gY29uZmlndXJhdGlvbiBvcHRpb25zIGZvciBpUGhvbmUgZnJvbSBTeXNDb25maWcKICAgICAgICAkU2VsZi0+e0NvbmZpZ30gPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ2lQaG9uZTo6RnJvbnRlbmQ6OkFnZW50VGlja2V0UGhvbmUnKTsKICAgICAgICBteSAlQ29uZmlnID0gKAogICAgICAgICAgICBUaXRsZSAgICA9PiAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6Okxhbmd1YWdlJyktPkdldCgnTmV3IFBob25lIFRpY2tldCcpLAogICAgICAgICAgICBFbGVtZW50cyA9PiAkU2VsZi0+X0dldFNjcmVlbkVsZW1lbnRzKCVQYXJhbSksCiAgICAgICAgICAgIEFjdGlvbnMgID0+IHsKICAgICAgICAgICAgICAgIE9iamVjdCAgICAgPT4gJ0N1c3RvbU9iamVjdCcsCiAgICAgICAgICAgICAgICBNZXRob2QgICAgID0+ICdTY3JlZW5BY3Rpb25zJywKICAgICAgICAgICAgICAgIFBhcmFtZXRlcnMgPT4gewogICAgICAgICAgICAgICAgICAgIEFjdGlvbiA9PiAnUGhvbmUnLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgfSwKICAgICAgICApOwogICAgICAgIHJldHVybiBcJUNvbmZpZzsKICAgIH0KCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICAjIEFkZCBOb3RlIFNjcmVlbgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgaWYgKCAkUGFyYW17U2NyZWVufSBlcSAnTm90ZScgKSB7CgogICAgICAgICMgZ2V0IHNjcmVlbiBjb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIGlQaG9uZSBmcm9tIFN5c0NvbmZpZwogICAgICAgICRTZWxmLT57Q29uZmlnfSA9ICRDb25maWdPYmplY3QtPkdldCgnaVBob25lOjpGcm9udGVuZDo6QWdlbnRUaWNrZXROb3RlJyk7CgogICAgICAgIG15ICVDb25maWcgPSAoCiAgICAgICAgICAgIFRpdGxlICAgID0+ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6TGFuZ3VhZ2UnKS0+R2V0KCdBZGQgTm90ZScpLAogICAgICAgICAgICBFbGVtZW50cyA9PiAkU2VsZi0+X0dldFNjcmVlbkVsZW1lbnRzKCVQYXJhbSksCiAgICAgICAgICAgIEFjdGlvbnMgID0+IHsKICAgICAgICAgICAgICAgIE9iamVjdCAgICAgPT4gJ0N1c3RvbU9iamVjdCcsCiAgICAgICAgICAgICAgICBNZXRob2QgICAgID0+ICdTY3JlZW5BY3Rpb25zJywKICAgICAgICAgICAgICAgIFBhcmFtZXRlcnMgPT4gewogICAgICAgICAgICAgICAgICAgIEFjdGlvbiAgID0+ICdOb3RlJywKICAgICAgICAgICAgICAgICAgICBUaWNrZXRJRCA9PiAkUGFyYW17VGlja2V0SUR9LAogICAgICAgICAgICAgICAgICAgIFRpdGxlICAgID0+ICdhIHRpdGxlJywKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgIH0sCiAgICAgICAgKTsKICAgICAgICByZXR1cm4gXCVDb25maWc7CiAgICB9CgogICAgIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gIwogICAgIyBDbG9zZSBUaWNrZXQgU2NyZWVuCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCgogICAgaWYgKCAkUGFyYW17U2NyZWVufSBlcSAnQ2xvc2UnICkgewoKICAgICAgICAjIGdldCBzY3JlZW4gY29uZmlndXJhdGlvbiBvcHRpb25zIGZvciBpUGhvbmUgZnJvbSBTeXNDb25maWcKICAgICAgICAkU2VsZi0+e0NvbmZpZ30gPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ2lQaG9uZTo6RnJvbnRlbmQ6OkFnZW50VGlja2V0Q2xvc2UnKTsKCiAgICAgICAgbXkgJUNvbmZpZyA9ICgKICAgICAgICAgICAgVGl0bGUgICAgPT4gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpMYW5ndWFnZScpLT5HZXQoJ0Nsb3NlJyksCiAgICAgICAgICAgIEVsZW1lbnRzID0+ICRTZWxmLT5fR2V0U2NyZWVuRWxlbWVudHMoJVBhcmFtKSwKICAgICAgICAgICAgQWN0aW9ucyAgPT4gewogICAgICAgICAgICAgICAgT2JqZWN0ICAgICA9PiAnQ3VzdG9tT2JqZWN0JywKICAgICAgICAgICAgICAgIE1ldGhvZCAgICAgPT4gJ1NjcmVlbkFjdGlvbnMnLAogICAgICAgICAgICAgICAgUGFyYW1ldGVycyA9PiB7CiAgICAgICAgICAgICAgICAgICAgQWN0aW9uICAgPT4gJ0Nsb3NlJywKICAgICAgICAgICAgICAgICAgICBUaWNrZXRJRCA9PiAkUGFyYW17VGlja2V0SUR9LAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgfSwKICAgICAgICApOwogICAgICAgIHJldHVybiBcJUNvbmZpZzsKICAgIH0KCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCiAgICAjIENvbXBvc2UgU2NyZWVuCiAgICAjIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAjCgogICAgaWYgKCAkUGFyYW17U2NyZWVufSBlcSAnQ29tcG9zZScgKSB7CgogICAgICAgICMgZ2V0IHNjcmVlbiBjb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIGlQaG9uZSBmcm9tIFN5c0NvbmZpZwogICAgICAgICRTZWxmLT57Q29uZmlnfSA9ICRDb25maWdPYmplY3QtPkdldCgnaVBob25lOjpGcm9udGVuZDo6QWdlbnRUaWNrZXRDb21wb3NlJyk7CgogICAgICAgIG15ICVDb25maWcgPSAoCiAgICAgICAgICAgIFRpdGxlICAgID0+ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6TGFuZ3VhZ2UnKS0+R2V0KCdDb21wb3NlJyksCiAgICAgICAgICAgIEVsZW1lbnRzID0+ICRTZWxmLT5fR2V0U2NyZWVuRWxlbWVudHMoJVBhcmFtKSB8fCAnJywKICAgICAgICAgICAgQWN0aW9ucyAgPT4gewogICAgICAgICAgICAgICAgT2JqZWN0ICAgICA9PiAnQ3VzdG9tT2JqZWN0JywKICAgICAgICAgICAgICAgIE1ldGhvZCAgICAgPT4gJ1NjcmVlbkFjdGlvbnMnLAogICAgICAgICAgICAgICAgUGFyYW1ldGVycyA9PiB7CiAgICAgICAgICAgICAgICAgICAgQWN0aW9uICAgICAgICAgPT4gJ0NvbXBvc2UnLAogICAgICAgICAgICAgICAgICAgIFRpY2tldElEICAgICAgID0+ICRQYXJhbXtUaWNrZXRJRH0sCiAgICAgICAgICAgICAgICAgICAgUmVwbHlBcnRpY2xlSUQgPT4gJFBhcmFte0FydGljbGVJRH0sCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICB9LAogICAgICAgICk7CiAgICAgICAgaWYgKCAhJENvbmZpZ3tFbGVtZW50c30gKSB7CiAgICAgICAgICAgIHJldHVybiAtMTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuIFwlQ29uZmlnOwogICAgfQoKICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgICMgTW92ZSBTY3JlZW4KICAgICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICMKICAgIGlmICggJFBhcmFte1NjcmVlbn0gZXEgJ01vdmUnICkgewoKICAgICAgICAjIGdldCBzY3JlZW4gY29uZmlndXJhdGlvbiBvcHRpb25zIGZvciBpUGhvbmUgZnJvbSBTeXNDb25maWcKICAgICAgICAkU2VsZi0+e0NvbmZpZ30gPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ2lQaG9uZTo6RnJvbnRlbmQ6OkFnZW50VGlja2V0TW92ZScpOwoKICAgICAgICBteSAlQ29uZmlnID0gKAogICAgICAgICAgICBUaXRsZSAgICA9PiAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6Okxhbmd1YWdlJyktPkdldCgnTW92ZScpLAogICAgICAgICAgICBFbGVtZW50cyA9PiAkU2VsZi0+X0dldFNjcmVlbkVsZW1lbnRzKCVQYXJhbSksCiAgICAgICAgICAgIEFjdGlvbnMgID0+IHsKICAgICAgICAgICAgICAgIE9iamVjdCAgICAgPT4gJ0N1c3RvbU9iamVjdCcsCiAgICAgICAgICAgICAgICBNZXRob2QgICAgID0+ICdTY3JlZW5BY3Rpb25zJywKICAgICAgICAgICAgICAgIFBhcmFtZXRlcnMgPT4gewogICAgICAgICAgICAgICAgICAgIEFjdGlvbiAgID0+ICdNb3ZlJywKICAgICAgICAgICAgICAgICAgICBUaWNrZXRJRCA9PiAkUGFyYW17VGlja2V0SUR9LAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgfSwKICAgICAgICApOwogICAgICAgIHJldHVybiBcJUNvbmZpZzsKICAgIH0KCiAgICByZXR1cm4gLTE7Cn0KCnN1YiBfR2V0U2NyZWVuRWxlbWVudHMgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSBAU2NyZWVuRWxlbWVudHM7CgogICAgIyBnZXQgbmVlZGVkIG9iamVjdHMKICAgIG15ICRMYW5ndWFnZU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6TGFuZ3VhZ2UnKTsKICAgIG15ICRUaWNrZXRPYmplY3QgICA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpUaWNrZXQnKTsKCiAgICBpZiAoICRTZWxmLT57Q29uZmlnfS0+e1RpdGxlfSApIHsKICAgICAgICBteSAlVGlja2V0RGF0YSA9ICRUaWNrZXRPYmplY3QtPlRpY2tldEdldCgKICAgICAgICAgICAgVGlja2V0SUQgPT4gJFBhcmFte1RpY2tldElEfSwKICAgICAgICAgICAgVXNlcklEICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgKTsKICAgICAgICBteSAkVGl0bGVEZWZhdWx0OwogICAgICAgIGlmICggJFRpY2tldERhdGF7VGl0bGV9ICkgewogICAgICAgICAgICAkVGl0bGVEZWZhdWx0ID0gJFRpY2tldERhdGF7VGl0bGV9IHx8ICcnOwogICAgICAgIH0KCiAgICAgICAgbXkgJFRpdGxlRWxlbWVudHMgPSB7CiAgICAgICAgICAgIE5hbWUgICAgICA9PiAnVGl0bGUnLAogICAgICAgICAgICBUaXRsZSAgICAgPT4gJExhbmd1YWdlT2JqZWN0LT5HZXQoJ1RpdGxlJyksCiAgICAgICAgICAgIERhdGF0eXBlICA9PiAnVGV4dCcsCiAgICAgICAgICAgIFZpZXdUeXBlICA9PiAnSW5wdXQnLAogICAgICAgICAgICBNaW4gICAgICAgPT4gMSwKICAgICAgICAgICAgTWF4ICAgICAgID0+IDIwMCwKICAgICAgICAgICAgTWFuZGF0b3J5ID0+IDEsCiAgICAgICAgICAgIERlZmF1bHQgICA9PiAkVGl0bGVEZWZhdWx0IHx8ICcnLAogICAgICAgIH07CiAgICAgICAgcHVzaCBAU2NyZWVuRWxlbWVudHMsICRUaXRsZUVsZW1lbnRzOwogICAgfQoKICAgICMgZ2V0IGNvbmZpZyBvYmplY3QKICAgIG15ICRDb25maWdPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpOwoKICAgICMgdHlwZQogICAgaWYgKCAkQ29uZmlnT2JqZWN0LT5HZXQoJ1RpY2tldDo6VHlwZScpICYmICRTZWxmLT57Q29uZmlnfS0+e1RpY2tldFR5cGV9ICkgewogICAgICAgIG15ICRUeXBlRWxlbWVudHMgPSB7CiAgICAgICAgICAgIE5hbWUgICAgID0+ICdUeXBlSUQnLAogICAgICAgICAgICBUaXRsZSAgICA9PiAkTGFuZ3VhZ2VPYmplY3QtPkdldCgnVHlwZScpLAogICAgICAgICAgICBEYXRhdHlwZSA9PiAnVGV4dCcsCiAgICAgICAgICAgIFZpZXd0eXBlID0+ICdQaWNrZXInLAogICAgICAgICAgICBPcHRpb25zICA9PiB7CiAgICAgICAgICAgICAgICAlewogICAgICAgICAgICAgICAgICAgICRTZWxmLT5fR2V0VHlwZXMoCiAgICAgICAgICAgICAgICAgICAgICAgICVQYXJhbSwKICAgICAgICAgICAgICAgICAgICAgICAgVXNlcklEID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICB9LAogICAgICAgICAgICBNYW5kYXRvcnkgPT4gMSwKICAgICAgICAgICAgRGVmYXVsdCAgID0+ICcnLAogICAgICAgIH07CiAgICAgICAgcHVzaCBAU2NyZWVuRWxlbWVudHMsICRUeXBlRWxlbWVudHM7CiAgICB9CgogICAgIyBmcm9tLCB0bwogICAgaWYgKCAkUGFyYW17U2NyZWVufSBlcSAnUGhvbmUnICkgewogICAgICAgIG15ICRDdXN0b21lckVsZW1lbnRzID0gewogICAgICAgICAgICBOYW1lICAgICAgICAgICA9PiAnQ3VzdG9tZXJVc2VyTG9naW4nLAogICAgICAgICAgICBUaXRsZSAgICAgICAgICA9PiAkTGFuZ3VhZ2VPYmplY3QtPkdldCgnRnJvbSBjdXN0b21lcicpLAogICAgICAgICAgICBEYXRhdHlwZSAgICAgICA9PiAnVGV4dCcsCiAgICAgICAgICAgIFZpZXd0eXBlICAgICAgID0+ICdBdXRvQ29tcGxldGlvbicsCiAgICAgICAgICAgIER5bmFtaWNPcHRpb25zID0+IHsKICAgICAgICAgICAgICAgIE9iamVjdCAgICAgPT4gJ0N1c3RvbU9iamVjdCcsCiAgICAgICAgICAgICAgICBNZXRob2QgICAgID0+ICdDdXN0b21lclNlYXJjaCcsCiAgICAgICAgICAgICAgICBQYXJhbWV0ZXJzID0+IFsKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFNlYXJjaCA9PiAnQ3VzdG9tZXJVc2VyTG9naW4nLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICB9LAogICAgICAgICAgICBBdXRvRmlsbEVsZW1lbnRzID0+IFsKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBFbGVtZW50TmFtZSA9PiAnQ3VzdG9tZXJJRCcsCiAgICAgICAgICAgICAgICAgICAgT2JqZWN0ICAgICAgPT4gJ0N1c3RvbU9iamVjdCcsCiAgICAgICAgICAgICAgICAgICAgTWV0aG9kICAgICAgPT4gJ0N1c3RvbWVySURHZXQnLAogICAgICAgICAgICAgICAgICAgIFBhcmFtZXRlcnMgID0+IFsKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgQ3VzdG9tZXJVc2VySUQgPT4gJ0N1c3RvbWVyVXNlckxvZ2luJywKICAgICAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgXSwKICAgICAgICAgICAgTWFuZGF0b3J5ID0+IDEsCiAgICAgICAgICAgIERlZmF1bHQgICA9PiAnJywKICAgICAgICB9OwogICAgICAgIHB1c2ggQFNjcmVlbkVsZW1lbnRzLCAkQ3VzdG9tZXJFbGVtZW50czsKICAgIH0KCiAgICBpZiAoICRQYXJhbXtTY3JlZW59IGVxICdQaG9uZScgfHwgJFBhcmFte1NjcmVlbn0gZXEgJ01vdmUnICkgewogICAgICAgIG15ICRUaXRsZTsKICAgICAgICBpZiAoICRQYXJhbXtTY3JlZW59IGVxICdQaG9uZScgKSB7CiAgICAgICAgICAgICRUaXRsZSA9ICdUbyBxdWV1ZSc7CiAgICAgICAgfQogICAgICAgIGVsc2UgewogICAgICAgICAgICAkVGl0bGUgPSAnTmV3IFF1ZXVlJzsKICAgICAgICB9CiAgICAgICAgbXkgJFF1ZXVlRWxlbWVudHMgPSB7CiAgICAgICAgICAgIE5hbWUgICAgID0+ICdRdWV1ZUlEJywKICAgICAgICAgICAgVGl0bGUgICAgPT4gJExhbmd1YWdlT2JqZWN0LT5HZXQoJFRpdGxlKSwKICAgICAgICAgICAgRGF0YXR5cGUgPT4gJ1RleHQnLAogICAgICAgICAgICBWaWV3dHlwZSA9PiAnUGlja2VyJywKICAgICAgICAgICAgT3B0aW9ucyAgPT4gewogICAgICAgICAgICAgICAgJXsKICAgICAgICAgICAgICAgICAgICAkU2VsZi0+X0dldFRvcygKICAgICAgICAgICAgICAgICAgICAgICAgJVBhcmFtLAogICAgICAgICAgICAgICAgICAgICAgICBVc2VySUQgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIE1hbmRhdG9yeSA9PiAxLAogICAgICAgICAgICBEZWZhdWx0ICAgPT4gJycsCiAgICAgICAgfTsKICAgICAgICBwdXNoIEBTY3JlZW5FbGVtZW50cywgJFF1ZXVlRWxlbWVudHM7CiAgICB9CgogICAgIyBzZXJ2aWNlCiAgICBpZiAoICRDb25maWdPYmplY3QtPkdldCgnVGlja2V0OjpTZXJ2aWNlJykgJiYgJFNlbGYtPntDb25maWd9LT57U2VydmljZX0gKSB7CiAgICAgICAgbXkgJFNlcnZpY2VFbGVtZW50cyA9IHsKICAgICAgICAgICAgTmFtZSAgICAgICAgICAgPT4gJ1NlcnZpY2VJRCcsCiAgICAgICAgICAgIFRpdGxlICAgICAgICAgID0+ICRMYW5ndWFnZU9iamVjdC0+R2V0KCdTZXJ2aWNlJyksCiAgICAgICAgICAgIERhdGF0eXBlICAgICAgID0+ICdUZXh0JywKICAgICAgICAgICAgVmlld3R5cGUgICAgICAgPT4gJ1BpY2tlcicsCiAgICAgICAgICAgIER5bmFtaWNPcHRpb25zID0+IHsKICAgICAgICAgICAgICAgIE9iamVjdCAgICAgPT4gJ0N1c3RvbU9iamVjdCcsCiAgICAgICAgICAgICAgICBNZXRob2QgICAgID0+ICdTZXJ2aWNlc0dldCcsCiAgICAgICAgICAgICAgICBQYXJhbWV0ZXJzID0+IFsKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIEN1c3RvbWVyVXNlcklEID0+ICdDdXN0b21lclVzZXJMb2dpbicsCiAgICAgICAgICAgICAgICAgICAgICAgIFF1ZXVlSUQgICAgICAgID0+ICdRdWV1ZUlEJywKICAgICAgICAgICAgICAgICAgICAgICAgVGlja2V0SUQgICAgICAgPT4gJ1RpY2tldElEJywKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgTWFuZGF0b3J5ID0+IDAsCiAgICAgICAgICAgIERlZmF1bHQgICA9PiAnJywKICAgICAgICB9OwogICAgICAgIHB1c2ggQFNjcmVlbkVsZW1lbnRzLCAkU2VydmljZUVsZW1lbnRzOwogICAgfQoKICAgICMgU0xBCiAgICBpZiAoICRDb25maWdPYmplY3QtPkdldCgnVGlja2V0OjpTZXJ2aWNlJykgJiYgJFNlbGYtPntDb25maWd9LT57U2VydmljZX0gKSB7CiAgICAgICAgbXkgJFNMQUVsZW1lbnRzID0gewogICAgICAgICAgICBOYW1lICAgICAgICAgICA9PiAnU0xBSUQnLAogICAgICAgICAgICBUaXRsZSAgICAgICAgICA9PiAkTGFuZ3VhZ2VPYmplY3QtPkdldCgnU0xBJyksCiAgICAgICAgICAgIERhdGF0eXBlICAgICAgID0+ICdUZXh0JywKICAgICAgICAgICAgVmlld3R5cGUgICAgICAgPT4gJ1BpY2tlcicsCiAgICAgICAgICAgIER5bmFtaWNPcHRpb25zID0+IHsKICAgICAgICAgICAgICAgIE9iamVjdCAgICAgPT4gJ0N1c3RvbU9iamVjdCcsCiAgICAgICAgICAgICAgICBNZXRob2QgICAgID0+ICdTTEFzR2V0JywKICAgICAgICAgICAgICAgIFBhcmFtZXRlcnMgPT4gWwogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgQ3VzdG9tZXJVc2VySUQgPT4gJ0N1c3RvbWVyVXNlckxvZ2luJywKICAgICAgICAgICAgICAgICAgICAgICAgUXVldWVJRCAgICAgICAgPT4gJ1F1ZXVlSUQnLAogICAgICAgICAgICAgICAgICAgICAgICBTZXJ2aWNlSUQgICAgICA9PiAnU2VydmljZUlEJywKICAgICAgICAgICAgICAgICAgICAgICAgVGlja2V0SUQgICAgICAgPT4gJ1RpY2tldElEJywKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgTWFuZGF0b3J5ID0+IDAsCiAgICAgICAgICAgIERlZmF1bHQgICA9PiAnJywKICAgICAgICB9OwogICAgICAgIHB1c2ggQFNjcmVlbkVsZW1lbnRzLCAkU0xBRWxlbWVudHM7CiAgICB9CgogICAgIyBvd25lcgogICAgaWYgKCAkU2VsZi0+e0NvbmZpZ30tPntPd25lcn0gKSB7CiAgICAgICAgbXkgJFRpdGxlOwogICAgICAgIGlmICggJFBhcmFte1NjcmVlbn0gZXEgJ01vdmUnICkgewogICAgICAgICAgICAkVGl0bGUgPSAnTmV3IE93bmVyJzsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICRUaXRsZSA9ICdPd25lcic7CiAgICAgICAgfQoKICAgICAgICBteSAkT3duZXJFbGVtZW50cyA9IHsKICAgICAgICAgICAgTmFtZSAgICAgICAgICAgPT4gJ093bmVySUQnLAogICAgICAgICAgICBUaXRsZSAgICAgICAgICA9PiAkTGFuZ3VhZ2VPYmplY3QtPkdldCgkVGl0bGUpLAogICAgICAgICAgICBEYXRhdHlwZSAgICAgICA9PiAnVGV4dCcsCiAgICAgICAgICAgIFZpZXd0eXBlICAgICAgID0+ICdQaWNrZXInLAogICAgICAgICAgICBEeW5hbWljT3B0aW9ucyA9PiB7CiAgICAgICAgICAgICAgICBPYmplY3QgICAgID0+ICdDdXN0b21PYmplY3QnLAogICAgICAgICAgICAgICAgTWV0aG9kICAgICA9PiAnVXNlcnNHZXQnLAogICAgICAgICAgICAgICAgUGFyYW1ldGVycyA9PiBbCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBRdWV1ZUlEICA9PiAnUXVldWVJRCcsCiAgICAgICAgICAgICAgICAgICAgICAgIEFsbFVzZXJzID0+IDEsCiAgICAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgIF0sCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIE1hbmRhdG9yeSA9PiAwLAogICAgICAgICAgICBEZWZhdWx0ICAgPT4gJycsCiAgICAgICAgfTsKICAgICAgICBwdXNoIEBTY3JlZW5FbGVtZW50cywgJE93bmVyRWxlbWVudHM7CiAgICB9CgogICAgIyByZXNwb25zaWJsZQogICAgaWYgKCAkQ29uZmlnT2JqZWN0LT5HZXQoJ1RpY2tldDo6UmVzcG9uc2libGUnKSAmJiAkU2VsZi0+e0NvbmZpZ30tPntSZXNwb25zaWJsZX0gKSB7CiAgICAgICAgbXkgJFJlc3BvbnNpYmxlRWxlbWVudHMgPSB7CiAgICAgICAgICAgIE5hbWUgICAgICAgICAgID0+ICdSZXNwb25zaWJsZUlEJywKICAgICAgICAgICAgVGl0bGUgICAgICAgICAgPT4gJExhbmd1YWdlT2JqZWN0LT5HZXQoJ1Jlc3BvbnNpYmxlJyksCiAgICAgICAgICAgIERhdGF0eXBlICAgICAgID0+ICdUZXh0JywKICAgICAgICAgICAgVmlld3R5cGUgICAgICAgPT4gJ1BpY2tlcicsCiAgICAgICAgICAgIER5bmFtaWNPcHRpb25zID0+IHsKICAgICAgICAgICAgICAgIE9iamVjdCAgICAgPT4gJ0N1c3RvbU9iamVjdCcsCiAgICAgICAgICAgICAgICBNZXRob2QgICAgID0+ICdVc2Vyc0dldCcsCiAgICAgICAgICAgICAgICBQYXJhbWV0ZXJzID0+IFsKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFF1ZXVlSUQgID0+ICdRdWV1ZUlEJywKICAgICAgICAgICAgICAgICAgICAgICAgQWxsVXNlcnMgPT4gMSwKICAgICAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICAgICAgXSwKICAgICAgICAgICAgfSwKICAgICAgICAgICAgTWFuZGF0b3J5ID0+IDAsCiAgICAgICAgICAgIERlZmF1bHQgICA9PiAnJywKICAgICAgICB9OwogICAgICAgIHB1c2ggQFNjcmVlbkVsZW1lbnRzLCAkUmVzcG9uc2libGVFbGVtZW50czsKICAgIH0KCiAgICBpZiAoICRQYXJhbXtTY3JlZW59IGVxICdDb21wb3NlJyApIHsKICAgICAgICBteSAlQ29tcG9zZURlZmF1bHRzID0gJFNlbGYtPl9HZXRDb21wb3NlRGVmYXVsdHMoCiAgICAgICAgICAgICVQYXJhbSwKICAgICAgICAgICAgVXNlcklEICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgICAgIFRpY2tldElEID0+ICRQYXJhbXtUaWNrZXRJRH0sCiAgICAgICAgKTsKCiAgICAgICAgaWYgKCAhJUNvbXBvc2VEZWZhdWx0cyApIHsKICAgICAgICAgICAgcmV0dXJuOwogICAgICAgIH0KCiAgICAgICAgbXkgJENvbXBvc2VGcm9tRWxlbWVudHMgPSB7CiAgICAgICAgICAgIE5hbWUgICAgICA9PiAnRnJvbScsCiAgICAgICAgICAgIFRpdGxlICAgICA9PiAkTGFuZ3VhZ2VPYmplY3QtPkdldCgnRnJvbScpLAogICAgICAgICAgICBEYXRhdHlwZSAgPT4gJ1RleHQnLAogICAgICAgICAgICBWaWV3dHlwZSAgPT4gJ0lucHV0JywKICAgICAgICAgICAgTWluICAgICAgID0+IDEsCiAgICAgICAgICAgIE1heCAgICAgICA9PiA1MCwKICAgICAgICAgICAgTWFuZGF0b3J5ID0+IDEsCiAgICAgICAgICAgIFJlYWRvbmx5ICA9PiAxLAogICAgICAgICAgICBEZWZhdWx0ICAgPT4gJENvbXBvc2VEZWZhdWx0c3tGcm9tfSB8fCAnJywKICAgICAgICB9OwogICAgICAgIHB1c2ggQFNjcmVlbkVsZW1lbnRzLCAkQ29tcG9zZUZyb21FbGVtZW50czsKCiAgICAgICAgbXkgJENvbXBvc2VUb0VsZW1lbnRzID0gewogICAgICAgICAgICBOYW1lICAgICAgPT4gJ1RvJywKICAgICAgICAgICAgVGl0bGUgICAgID0+ICRMYW5ndWFnZU9iamVjdC0+R2V0KCdUbycpLAogICAgICAgICAgICBEYXRhdHlwZSAgPT4gJ1RleHQnLAogICAgICAgICAgICBWaWV3dHlwZSAgPT4gJ0VNYWlsJywKICAgICAgICAgICAgTWluICAgICAgID0+IDEsCiAgICAgICAgICAgIE1heCAgICAgICA9PiA1MCwKICAgICAgICAgICAgTWFuZGF0b3J5ID0+IDAsCiAgICAgICAgICAgIERlZmF1bHQgICA9PiAkQ29tcG9zZURlZmF1bHRze1RvfSB8fCAnJywKICAgICAgICB9OwogICAgICAgIHB1c2ggQFNjcmVlbkVsZW1lbnRzLCAkQ29tcG9zZVRvRWxlbWVudHM7CgogICAgICAgIG15ICRDb21wb3NlQ2NFbGVtZW50cyA9IHsKICAgICAgICAgICAgTmFtZSAgICAgID0+ICdDYycsCiAgICAgICAgICAgIFRpdGxlICAgICA9PiAkTGFuZ3VhZ2VPYmplY3QtPkdldCgnQ2MnKSwKICAgICAgICAgICAgRGF0YXR5cGUgID0+ICdUZXh0JywKICAgICAgICAgICAgVmlld3R5cGUgID0+ICdFTWFpbCcsCiAgICAgICAgICAgIE1pbiAgICAgICA9PiAxLAogICAgICAgICAgICBNYXggICAgICAgPT4gNTAsCiAgICAgICAgICAgIE1hbmRhdG9yeSA9PiAwLAogICAgICAgICAgICBEZWZhdWx0ICAgPT4gJENvbXBvc2VEZWZhdWx0c3tDY30gfHwgJycsCiAgICAgICAgfTsKICAgICAgICBwdXNoIEBTY3JlZW5FbGVtZW50cywgJENvbXBvc2VDY0VsZW1lbnRzOwoKICAgICAgICBteSAkQ29tcG9zZUJjY0VsZW1lbnRzID0gewogICAgICAgICAgICBOYW1lICAgICAgPT4gJ0JjYycsCiAgICAgICAgICAgIFRpdGxlICAgICA9PiAkTGFuZ3VhZ2VPYmplY3QtPkdldCgnQmNjJyksCiAgICAgICAgICAgIERhdGF0eXBlICA9PiAnVGV4dCcsCiAgICAgICAgICAgIFZpZXd0eXBlICA9PiAnRU1haWwnLAogICAgICAgICAgICBNaW4gICAgICAgPT4gMSwKICAgICAgICAgICAgTWF4ICAgICAgID0+IDUwLAogICAgICAgICAgICBNYW5kYXRvcnkgPT4gMCwKICAgICAgICAgICAgRGVmYXVsdCAgID0+ICRDb21wb3NlRGVmYXVsdHN7QmNjfSB8fCAnJywKICAgICAgICB9OwogICAgICAgIHB1c2ggQFNjcmVlbkVsZW1lbnRzLCAkQ29tcG9zZUJjY0VsZW1lbnRzOwoKICAgICAgICBteSAkU3ViamVjdEVsZW1lbnRzID0gewogICAgICAgICAgICBOYW1lICAgICAgPT4gJ1N1YmplY3QnLAogICAgICAgICAgICBUaXRsZSAgICAgPT4gJExhbmd1YWdlT2JqZWN0LT5HZXQoJ1N1YmplY3QnKSwKICAgICAgICAgICAgRGF0YXR5cGUgID0+ICdUZXh0JywKICAgICAgICAgICAgVmlld3R5cGUgID0+ICdJbnB1dCcsCiAgICAgICAgICAgIE1pbiAgICAgICA9PiAxLAogICAgICAgICAgICBNYXggICAgICAgPT4gMjUwLAogICAgICAgICAgICBNYW5kYXRvcnkgPT4gMSwKICAgICAgICAgICAgRGVmYXVsdCAgID0+ICRDb21wb3NlRGVmYXVsdHN7U3ViamVjdH0gfHwgJycsCiAgICAgICAgfTsKICAgICAgICBwdXNoIEBTY3JlZW5FbGVtZW50cywgJFN1YmplY3RFbGVtZW50czsKCiAgICAgICAgbXkgJEJvZHlFbGVtZW50cyA9IHsKICAgICAgICAgICAgTmFtZSAgICAgID0+ICdCb2R5JywKICAgICAgICAgICAgVGl0bGUgICAgID0+ICRMYW5ndWFnZU9iamVjdC0+R2V0KCdUZXh0JyksCiAgICAgICAgICAgIERhdGF0eXBlICA9PiAnVGV4dCcsCiAgICAgICAgICAgIFZpZXd0eXBlICA9PiAnVGV4dEFyZWEnLAogICAgICAgICAgICBNaW4gICAgICAgPT4gMSwKICAgICAgICAgICAgTWF4ICAgICAgID0+IDIwXzAwMCwKICAgICAgICAgICAgTWFuZGF0b3J5ID0+IDEsCiAgICAgICAgICAgIERlZmF1bHQgICA9PiAkQ29tcG9zZURlZmF1bHRze0JvZHl9IHx8ICcnLAogICAgICAgIH07CiAgICAgICAgcHVzaCBAU2NyZWVuRWxlbWVudHMsICRCb2R5RWxlbWVudHM7CiAgICB9CgogICAgIyBzdWJqZWN0CiAgICBpZiAoICRQYXJhbXtTY3JlZW59IG5lICdDb21wb3NlJyApIHsKICAgICAgICBteSAkRGVmYXVsdFN1YmplY3QgPSAnJzsKICAgICAgICBpZiAoICRTZWxmLT57Q29uZmlnfS0+e1N1YmplY3R9ICkgewogICAgICAgICAgICAkRGVmYXVsdFN1YmplY3QgPSAkTGFuZ3VhZ2VPYmplY3QtPkdldCggJFNlbGYtPntDb25maWd9LT57U3ViamVjdH0gKTsKICAgICAgICB9CgogICAgICAgIG15ICRTdWJqZWN0RWxlbWVudHMgPSB7CiAgICAgICAgICAgIE5hbWUgICAgICA9PiAnU3ViamVjdCcsCiAgICAgICAgICAgIFRpdGxlICAgICA9PiAkTGFuZ3VhZ2VPYmplY3QtPkdldCgnU3ViamVjdCcpLAogICAgICAgICAgICBEYXRhdHlwZSAgPT4gJ1RleHQnLAogICAgICAgICAgICBWaWV3dHlwZSAgPT4gJ0lucHV0JywKICAgICAgICAgICAgTWluICAgICAgID0+IDEsCiAgICAgICAgICAgIE1heCAgICAgICA9PiAyNTAsCiAgICAgICAgICAgIE1hbmRhdG9yeSA9PiAxLAogICAgICAgICAgICBEZWZhdWx0ICAgPT4gJERlZmF1bHRTdWJqZWN0IHx8ICcnLAogICAgICAgIH07CiAgICAgICAgcHVzaCBAU2NyZWVuRWxlbWVudHMsICRTdWJqZWN0RWxlbWVudHM7CiAgICB9CgogICAgIyBib2R5CiAgICBpZiAoICRQYXJhbXtTY3JlZW59IG5lICdDb21wb3NlJyApIHsKICAgICAgICBteSAkQm9keUVsZW1lbnRzID0gewogICAgICAgICAgICBOYW1lICAgICAgPT4gJ0JvZHknLAogICAgICAgICAgICBUaXRsZSAgICAgPT4gJExhbmd1YWdlT2JqZWN0LT5HZXQoJ1RleHQnKSwKICAgICAgICAgICAgRGF0YXR5cGUgID0+ICdUZXh0JywKICAgICAgICAgICAgVmlld3R5cGUgID0+ICdUZXh0QXJlYScsCiAgICAgICAgICAgIE1pbiAgICAgICA9PiAxLAogICAgICAgICAgICBNYXggICAgICAgPT4gMjBfMDAwLAogICAgICAgICAgICBNYW5kYXRvcnkgPT4gMSwKICAgICAgICAgICAgRGVmYXVsdCAgID0+ICRTZWxmLT57Q29uZmlnfS0+e0JvZHl9IHx8ICcnLAogICAgICAgIH07CiAgICAgICAgcHVzaCBAU2NyZWVuRWxlbWVudHMsICRCb2R5RWxlbWVudHM7CiAgICB9CgogICAgIyBjdXN0b21lciBpZAogICAgaWYgKCAkU2VsZi0+e0NvbmZpZ30tPntDdXN0b21lcklEfSApIHsKICAgICAgICBteSAkQ3VzdG9tZXJFbGVtZW50cyA9IHsKICAgICAgICAgICAgTmFtZSAgICAgID0+ICdDdXN0b21lcklEJywKICAgICAgICAgICAgVGl0bGUgICAgID0+ICRMYW5ndWFnZU9iamVjdC0+R2V0KCdDdXN0b21lcklEJyksCiAgICAgICAgICAgIERhdGF0eXBlICA9PiAnVGV4dCcsCiAgICAgICAgICAgIFZpZXd0eXBlICA9PiAnSW5wdXQnLAogICAgICAgICAgICBNaW4gICAgICAgPT4gMSwKICAgICAgICAgICAgTWF4ICAgICAgID0+IDE1MCwKICAgICAgICAgICAgTWFuZGF0b3J5ID0+IDAsCiAgICAgICAgICAgIERlZmF1bHQgICA9PiAnJywKICAgICAgICB9OwogICAgICAgIHB1c2ggQFNjcmVlbkVsZW1lbnRzLCAkQ3VzdG9tZXJFbGVtZW50czsKICAgIH0KCiAgICAjbm90ZQogICAgaWYgKCAkU2VsZi0+e0NvbmZpZ30tPntOb3RlfSApIHsKCiAgICAgICAgbXkgJERlZmF1bHRBcnRpY2xlVHlwZTsKICAgICAgICBpZiAoICRTZWxmLT57Q29uZmlnfS0+e0FydGljbGVUeXBlRGVmYXVsdH0gKSB7CiAgICAgICAgICAgICREZWZhdWx0QXJ0aWNsZVR5cGUgPSAkU2VsZi0+e0NvbmZpZ30tPntBcnRpY2xlVHlwZURlZmF1bHR9OwogICAgICAgIH0KCiAgICAgICAgbXkgJERlZmF1bHRBcnRpY2xlVHlwZUlEOwogICAgICAgIGlmICgkRGVmYXVsdEFydGljbGVUeXBlKSB7CiAgICAgICAgICAgICREZWZhdWx0QXJ0aWNsZVR5cGVJRCA9ICRUaWNrZXRPYmplY3QtPkFydGljbGVUeXBlTG9va3VwKAogICAgICAgICAgICAgICAgQXJ0aWNsZVR5cGUgPT4gJERlZmF1bHRBcnRpY2xlVHlwZSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICAgICAgbXkgJE5vdGVFbGVtZW50cyA9IHsKICAgICAgICAgICAgTmFtZSAgICAgPT4gJ0FydGljbGVUeXBlSUQnLAogICAgICAgICAgICBUaXRsZSAgICA9PiAkTGFuZ3VhZ2VPYmplY3QtPkdldCgnTm90ZSB0eXBlJyksCiAgICAgICAgICAgIERhdGF0eXBlID0+ICdUZXh0JywKICAgICAgICAgICAgVmlld3R5cGUgPT4gJ1BpY2tlcicsCiAgICAgICAgICAgIE9wdGlvbnMgID0+IHsKICAgICAgICAgICAgICAgICV7ICRTZWxmLT5fR2V0Tm90ZVR5cGVzKCAlUGFyYW0sICkgfQogICAgICAgICAgICB9LAogICAgICAgICAgICBNYW5kYXRvcnkgICAgID0+IDEsCiAgICAgICAgICAgIERlZmF1bHQgICAgICAgPT4gJERlZmF1bHRBcnRpY2xlVHlwZUlEIHx8ICcnLAogICAgICAgICAgICBEZWZhdWx0T3B0aW9uID0+ICREZWZhdWx0QXJ0aWNsZVR5cGUgfHwgJycsCiAgICAgICAgfTsKICAgICAgICBwdXNoIEBTY3JlZW5FbGVtZW50cywgJE5vdGVFbGVtZW50czsKICAgIH0KCiAgICAjIHN0YXRlCiAgICBpZiAoICRTZWxmLT57Q29uZmlnfS0+e1N0YXRlfSApIHsKCiAgICAgICAgbXkgJERlZmF1bHRTdGF0ZTsKICAgICAgICBpZiAoICRTZWxmLT57Q29uZmlnfS0+e1N0YXRlRGVmYXVsdH0gKSB7CiAgICAgICAgICAgICREZWZhdWx0U3RhdGUgPSAkU2VsZi0+e0NvbmZpZ30tPntTdGF0ZURlZmF1bHR9OwogICAgICAgIH0KCiAgICAgICAgbXkgJERlZmF1bHRTdGF0ZUlEOwogICAgICAgIGlmICgkRGVmYXVsdFN0YXRlKSB7CgogICAgICAgICAgICAjIGNhbid0IHVzZSBTdGF0ZUxvb2t1cCBmb3IgMi40IGZyYW1ld29yayBjb21wYXRpYmlsaXR5CiAgICAgICAgICAgIG15ICVTdGF0ZSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpTdGF0ZScpLT5TdGF0ZUdldCgKICAgICAgICAgICAgICAgIE5hbWUgPT4gJERlZmF1bHRTdGF0ZSwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIGlmICglU3RhdGUpIHsKICAgICAgICAgICAgICAgICREZWZhdWx0U3RhdGVJRCA9ICRTdGF0ZXtJRH07CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIG15ICRTdGF0ZUVsZW1lbnRzID0gewogICAgICAgICAgICBOYW1lICAgICAgICAgICA9PiAnU3RhdGVJRCcsCiAgICAgICAgICAgIFRpdGxlICAgICAgICAgID0+ICRMYW5ndWFnZU9iamVjdC0+R2V0KCdOZXh0IFRpY2tldCBTdGF0ZScpLAogICAgICAgICAgICBEYXRhdHlwZSAgICAgICA9PiAnVGV4dCcsCiAgICAgICAgICAgIFZpZXd0eXBlICAgICAgID0+ICdQaWNrZXInLAogICAgICAgICAgICBEeW5hbWljT3B0aW9ucyA9PiB7CiAgICAgICAgICAgICAgICBPYmplY3QgICAgID0+ICdDdXN0b21PYmplY3QnLAogICAgICAgICAgICAgICAgTWV0aG9kICAgICA9PiAnTmV4dFN0YXRlc0dldCcsCiAgICAgICAgICAgICAgICBQYXJhbWV0ZXJzID0+IFsKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIFF1ZXVlSUQgPT4gJ1F1ZXVlSUQnLAogICAgICAgICAgICAgICAgICAgIH0sCiAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICB9LAogICAgICAgICAgICBNYW5kYXRvcnkgICAgID0+IDEsCiAgICAgICAgICAgIERlZmF1bHQgICAgICAgPT4gJERlZmF1bHRTdGF0ZUlEIHx8ICcnLAogICAgICAgICAgICBEZWZhdWx0T3B0aW9uID0+ICREZWZhdWx0U3RhdGUgfHwgJycsCiAgICAgICAgfTsKICAgICAgICBwdXNoIEBTY3JlZW5FbGVtZW50cywgJFN0YXRlRWxlbWVudHM7CiAgICB9CgogICAgIyBwZW5kaW5nIGRhdGUKICAgIGlmICggJFBhcmFte1NjcmVlbn0gZXEgJ1Bob25lJyB8fCAkUGFyYW17U2NyZWVufSBlcSAnQ29tcG9zZScgKSB7CiAgICAgICAgbXkgJFBlbmRpbmdEYXRlRWxlbWVudHMgPSB7CiAgICAgICAgICAgIE5hbWUgICAgICA9PiAnUGVuZGluZ0RhdGUnLAogICAgICAgICAgICBUaXRsZSAgICAgPT4gJExhbmd1YWdlT2JqZWN0LT5HZXQoJ1BlbmRpbmcgRGF0ZSAoZm9yIHBlbmRpbmcqIHN0YXRlcyknKSwKICAgICAgICAgICAgRGF0YXR5cGUgID0+ICdEYXRlVGltZScsCiAgICAgICAgICAgIFZpZXd0eXBlICA9PiAnUGlja2VyJywKICAgICAgICAgICAgTWFuZGF0b3J5ID0+IDAsCiAgICAgICAgICAgIERlZmF1bHQgICA9PiAnJywKICAgICAgICB9OwogICAgICAgIHB1c2ggQFNjcmVlbkVsZW1lbnRzLCAkUGVuZGluZ0RhdGVFbGVtZW50czsKICAgIH0KCiAgICAjIHByaW9yaXR5CiAgICBpZiAoICRQYXJhbXtTY3JlZW59IGVxICdQaG9uZScgKSB7CgogICAgICAgIG15ICREZWZhdWx0UHJpb3JpdHk7CiAgICAgICAgaWYgKCAkU2VsZi0+e0NvbmZpZ30tPntQcmlvcml0eURlZmF1bHR9ICkgewogICAgICAgICAgICAkRGVmYXVsdFByaW9yaXR5ID0gJFNlbGYtPntDb25maWd9LT57UHJpb3JpdHlEZWZhdWx0fTsKICAgICAgICB9CgogICAgICAgIG15ICREZWZhdWx0UHJpb3JpdHlJRDsKICAgICAgICBpZiAoJERlZmF1bHRQcmlvcml0eSkgewogICAgICAgICAgICAkRGVmYXVsdFByaW9yaXR5SUQgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6UHJpb3JpdHknKS0+UHJpb3JpdHlMb29rdXAoCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAkRGVmYXVsdFByaW9yaXR5LAogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgbXkgJFByaW9yaXR5RWxlbWVudHMgPSB7CiAgICAgICAgICAgIE5hbWUgICAgICAgICAgID0+ICdQcmlvcml0eUlEJywKICAgICAgICAgICAgVGl0bGUgICAgICAgICAgPT4gJExhbmd1YWdlT2JqZWN0LT5HZXQoJ1ByaW9yaXR5JyksCiAgICAgICAgICAgIERhdGF0eXBlICAgICAgID0+ICdUZXh0JywKICAgICAgICAgICAgVmlld3R5cGUgICAgICAgPT4gJ1BpY2tlcicsCiAgICAgICAgICAgIER5bmFtaWNPcHRpb25zID0+IHsKICAgICAgICAgICAgICAgIE9iamVjdCAgICAgPT4gJ0N1c3RvbU9iamVjdCcsCiAgICAgICAgICAgICAgICBNZXRob2QgICAgID0+ICdQcmlvcml0aWVzR2V0JywKICAgICAgICAgICAgICAgIFBhcmFtZXRlcnMgPT4gJycsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIE1hbmRhdG9yeSAgICAgPT4gMSwKICAgICAgICAgICAgRGVmYXVsdCAgICAgICA9PiAkRGVmYXVsdFByaW9yaXR5SUQgfHwgJycsCiAgICAgICAgICAgIERlZmF1bHRPcHRpb24gPT4gJERlZmF1bHRQcmlvcml0eSB8fCAnJywKICAgICAgICB9OwogICAgICAgIHB1c2ggQFNjcmVlbkVsZW1lbnRzLCAkUHJpb3JpdHlFbGVtZW50czsKICAgIH0KCiAgICAjIGR5bmFtaWMgZmllbGRzCiAgICAjIGdldCBkeW5hbWljIGZpZWxkIGNvbmZpZyBmb3IgdGhlIHNjcmVlbgogICAgJFNlbGYtPntEeW5hbWljRmllbGRGaWx0ZXJ9ID0gJFNlbGYtPntDb25maWd9LT57RHluYW1pY0ZpZWxkfTsKCiAgICAjIGdldCB0aGUgZHluYW1pYyBmaWVsZHMgZm9yIHRpY2tldCBvYmplY3QKICAgICRTZWxmLT57RHluYW1pY0ZpZWxkfSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQnKS0+RHluYW1pY0ZpZWxkTGlzdEdldCgKICAgICAgICBWYWxpZCAgICAgICA9PiAxLAogICAgICAgIE9iamVjdFR5cGUgID0+IFsgJ1RpY2tldCcsICdBcnRpY2xlJyBdLAogICAgICAgIEZpZWxkRmlsdGVyID0+ICRTZWxmLT57RHluYW1pY0ZpZWxkRmlsdGVyfSB8fCB7fSwKICAgICk7CgogICAgIyBnZXQgdXNlciBwcmVmZXJlbmNlcwogICAgbXkgJVVzZXJQcmVmZXJlbmNlcyA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVc2VyJyktPkdldFByZWZlcmVuY2VzKAogICAgICAgIFVzZXJJRCA9PiAkUGFyYW17VXNlcklEfSwKICAgICk7CgogICAgIyBnZXQgZHluYW1pYyBmaWVsZCBiYWNrZW5kIG9iamVjdAogICAgbXkgJER5bmFtaWNGaWVsZEJhY2tlbmRPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6RHluYW1pY0ZpZWxkOjpCYWNrZW5kJyk7CgogICAgIyBjeWNsZSB0cm91Z2ggdGhlIGFjdGl2YXRlZCBEeW5hbWljIEZpZWxkcyBmb3IgdGhpcyBzY3JlZW4KICAgIERZTkFNSUNGSUVMRDoKICAgIGZvciBteSAkRHluYW1pY0ZpZWxkQ29uZmlnICggQHsgJFNlbGYtPntEeW5hbWljRmllbGR9IH0gKSB7CiAgICAgICAgbmV4dCBEWU5BTUlDRklFTEQgaWYgIUlzSGFzaFJlZldpdGhEYXRhKCREeW5hbWljRmllbGRDb25maWcpOwogICAgICAgIG5leHQgRFlOQU1JQ0ZJRUxEIGlmICFJc0hhc2hSZWZXaXRoRGF0YSggJER5bmFtaWNGaWVsZENvbmZpZy0+e0NvbmZpZ30gKTsKICAgICAgICBuZXh0IERZTkFNSUNGSUVMRCBpZiAhJER5bmFtaWNGaWVsZENvbmZpZy0+e05hbWV9OwoKICAgICAgICAjIHNraXAgYWxsIGR5bmFtaWMgZmllbGRzIHRoYXQgYXJlIG5vdCBkZXNpZ25lZCByZW5kZXIgaW4gaVBob25lIEFwcAogICAgICAgIG15ICRJc0lQaG9uZUNhcGFibGUgPSAkRHluYW1pY0ZpZWxkQmFja2VuZE9iamVjdC0+SGFzQmVoYXZpb3IoCiAgICAgICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyA9PiAkRHluYW1pY0ZpZWxkQ29uZmlnLAogICAgICAgICAgICBCZWhhdmlvciAgICAgICAgICAgPT4gJ0lzSVBob25lQ2FwYWJsZScsCiAgICAgICAgKTsKICAgICAgICBuZXh0IERZTkFNSUNGSUVMRCBpZiAhJElzSVBob25lQ2FwYWJsZTsKCiAgICAgICAgIyBjcmVhdGUgJFZhbHVlIGFzIHVuZGVmaW5lZCBiZWNhdXNlIGEgdXNlciBkZWZhdWx0IHZhbHVlIGNvdWxkIGJlICcnCiAgICAgICAgbXkgJFZhbHVlID0gdW5kZWY7CgogICAgICAgICMgb3ZlcnJpZGUgdGhlIHZhbHVlIGZyb20gdXNlciBwcmVmZXJlbmNlcyBpZiBpcyBzZXQKICAgICAgICBpZiAoICRVc2VyUHJlZmVyZW5jZXN7ICdVc2VyRHluYW1pY0ZpZWxkXycgLiAkRHluYW1pY0ZpZWxkQ29uZmlnLT57TmFtZX0gfSApIHsKICAgICAgICAgICAgJFZhbHVlID0gJFVzZXJQcmVmZXJlbmNlc3sgJ1VzZXJEeW5hbWljRmllbGRfJyAuICREeW5hbWljRmllbGRDb25maWctPntOYW1lfSB9OwogICAgICAgIH0KCiAgICAgICAgaWYgKCAkUGFyYW17VGlja2V0SUR9ICYmICREeW5hbWljRmllbGRDb25maWctPntPYmplY3RUeXBlfSBlcSAnVGlja2V0JyApIHsKICAgICAgICAgICAgJFZhbHVlID0gJER5bmFtaWNGaWVsZEJhY2tlbmRPYmplY3QtPlZhbHVlR2V0KAogICAgICAgICAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnID0+ICREeW5hbWljRmllbGRDb25maWcsCiAgICAgICAgICAgICAgICBPYmplY3RJRCAgICAgICAgICAgPT4gJFBhcmFte1RpY2tldElEfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgIG15ICRGaWVsZERlZmluaXRpb24gPSAkRHluYW1pY0ZpZWxkQmFja2VuZE9iamVjdC0+SVBob25lRmllbGRQYXJhbWV0ZXJCdWlsZCgKICAgICAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnID0+ICREeW5hbWljRmllbGRDb25maWcsCiAgICAgICAgICAgIFZhbHVlICAgICAgICAgICAgICA9PiAkVmFsdWUsCiAgICAgICAgICAgIFVzZURlZmF1bHRWYWx1ZSAgICA9PiAxLAogICAgICAgICAgICBMYW5ndWFnZU9iamVjdCAgICAgPT4gJExhbmd1YWdlT2JqZWN0LAogICAgICAgICAgICBNYW5kYXRvcnkgICAgICAgICAgPT4gJFNlbGYtPntDb25maWd9LT57RHluYW1pY0ZpZWxkfS0+eyAkRHluYW1pY0ZpZWxkQ29uZmlnLT57TmFtZX0gfSA9PSAyLAogICAgICAgICk7CgogICAgICAgICMgY2hlY2sgaWYgdGhlIEZpZWxkRGVmaW5pdGlvbiBpcyBkZWZpbmVkIGFuZCBjb250YWluIGRhdGEsIG90aGVyd2lzZSBhbiB1bmRlZiB2YXJpYWJsZSBpbgogICAgICAgICMgdGhpcyBwb2ludCB3aWxsIGNhdXNlIGEgTlVMTCBlbGVtZW50IGluIHRoZSBBUlJBWSBhbmQgd2lsbCBjYXVzZSBpUGhvbmUgQXBwIHRvIGNyYXNoCiAgICAgICAgaWYgKCBJc0hhc2hSZWZXaXRoRGF0YSgkRmllbGREZWZpbml0aW9uKSApIHsKICAgICAgICAgICAgcHVzaCBAU2NyZWVuRWxlbWVudHMsICRGaWVsZERlZmluaXRpb247CiAgICAgICAgfQogICAgfQoKICAgICMgdGltZSB1bml0cwogICAgaWYgKCAkU2VsZi0+e0NvbmZpZ30tPntUaW1lVW5pdHN9ICkgewogICAgICAgIG15ICRNYW5kYXRvcnk7CiAgICAgICAgaWYgKCAkQ29uZmlnT2JqZWN0LT5HZXQoJ1RpY2tldDo6RnJvbnRlbmQ6Ok5lZWRBY2NvdW50ZWRUaW1lJykgKSB7CiAgICAgICAgICAgICRNYW5kYXRvcnkgPSAxOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgJE1hbmRhdG9yeSA9IDA7CiAgICAgICAgfQogICAgICAgIG15ICRUaW1lVW5pdHNNZWFzdXJlICA9ICRDb25maWdPYmplY3QtPkdldCgnVGlja2V0OjpGcm9udGVuZDo6VGltZVVuaXRzJyk7CiAgICAgICAgbXkgJFRpbWVVbml0c0VsZW1lbnRzID0gewogICAgICAgICAgICBOYW1lICAgICAgPT4gJ1RpbWVVbml0cycsCiAgICAgICAgICAgIFRpdGxlICAgICA9PiAkTGFuZ3VhZ2VPYmplY3QtPkdldCgiVGltZSB1bml0cyAkVGltZVVuaXRzTWVhc3VyZSIpLAogICAgICAgICAgICBEYXRhdHlwZSAgPT4gJ051bWVyaWMnLAogICAgICAgICAgICBWaWV3dHlwZSAgPT4gJ0lucHV0JywKICAgICAgICAgICAgTWluICAgICAgID0+IDEsCiAgICAgICAgICAgIE1heCAgICAgICA9PiAxMCwKICAgICAgICAgICAgTWFuZGF0b3J5ID0+ICRNYW5kYXRvcnksCiAgICAgICAgICAgIERlZmF1bHQgICA9PiAnJywKICAgICAgICB9OwogICAgICAgIHB1c2ggQFNjcmVlbkVsZW1lbnRzLCAkVGltZVVuaXRzRWxlbWVudHM7CiAgICB9CiAgICByZXR1cm4gXEBTY3JlZW5FbGVtZW50czsKfQoKc3ViIF9HZXRUeXBlcyB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgIG15ICVUeXBlID0gKCk7CgogICAgIyBnZXQgdHlwZQogICAgJVR5cGUgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6VGlja2V0JyktPlRpY2tldFR5cGVMaXN0KAogICAgICAgICVQYXJhbSwKICAgICAgICBBY3Rpb24gPT4gJFBhcmFte0FjdGlvbn0sCiAgICAgICAgVXNlcklEID0+ICRQYXJhbXtVc2VySUR9LAogICAgKTsKICAgIHJldHVybiBcJVR5cGU7Cn0KCnN1YiBfR2V0VG9zIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgIyBnZXQgY29uZmlnIG9iamVjdAogICAgbXkgJENvbmZpZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyk7CgogICAgIyBjaGVjayBvd24gc2VsZWN0aW9uCiAgICBteSAlTmV3VG9zID0gKCk7CiAgICBpZiAoICRDb25maWdPYmplY3QtPnsnVGlja2V0OjpGcm9udGVuZDo6TmV3UXVldWVPd25TZWxlY3Rpb24nfSApIHsKICAgICAgICAlTmV3VG9zID0gJXsgJENvbmZpZ09iamVjdC0+eydUaWNrZXQ6OkZyb250ZW5kOjpOZXdRdWV1ZU93blNlbGVjdGlvbid9IH07CiAgICB9CiAgICBlbHNlIHsKCiAgICAgICAgIyBTZWxlY3Rpb25UeXBlIFF1ZXVlIG9yIFN5c3RlbUFkZHJlc3M/CiAgICAgICAgbXkgJVRvcyA9ICgpOwogICAgICAgIGlmICggJENvbmZpZ09iamVjdC0+R2V0KCdUaWNrZXQ6OkZyb250ZW5kOjpOZXdRdWV1ZVNlbGVjdGlvblR5cGUnKSBlcSAnUXVldWUnICkgewogICAgICAgICAgICAlVG9zID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlRpY2tldCcpLT5Nb3ZlTGlzdCgKICAgICAgICAgICAgICAgIFR5cGUgICAgPT4gJ2NyZWF0ZScsCiAgICAgICAgICAgICAgICBBY3Rpb24gID0+ICRQYXJhbXtBY3Rpb259LAogICAgICAgICAgICAgICAgUXVldWVJRCA9PiAkUGFyYW17UXVldWVJRH0sCiAgICAgICAgICAgICAgICBVc2VySUQgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICApOwogICAgICAgIH0KICAgICAgICBlbHNlIHsKICAgICAgICAgICAgJVRvcyA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEQicpLT5HZXRUYWJsZURhdGEoCiAgICAgICAgICAgICAgICBUYWJsZSA9PiAnc3lzdGVtX2FkZHJlc3MnLAogICAgICAgICAgICAgICAgV2hhdCAgPT4gJ3F1ZXVlX2lkLCBpZCcsCiAgICAgICAgICAgICAgICBWYWxpZCA9PiAxLAogICAgICAgICAgICAgICAgQ2xhbXAgPT4gMSwKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgICMgZ2V0IGNyZWF0ZSBwZXJtaXNzaW9uIHF1ZXVlcwogICAgICAgIG15ICVVc2VyR3JvdXBzID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06Okdyb3VwJyktPkdyb3VwTWVtYmVyTGlzdCgKICAgICAgICAgICAgVXNlcklEID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgICAgICBUeXBlICAgPT4gJ2NyZWF0ZScsCiAgICAgICAgICAgIFJlc3VsdCA9PiAnSEFTSCcsCiAgICAgICAgICAgIENhY2hlZCA9PiAxLAogICAgICAgICk7CgogICAgICAgICMgYnVpbGQgc2VsZWN0aW9uIHN0cmluZwogICAgICAgIFFVRVVFSUQ6CiAgICAgICAgZm9yIG15ICRRdWV1ZUlEICggc29ydCBrZXlzICVUb3MgKSB7CiAgICAgICAgICAgIG15ICVRdWV1ZURhdGEgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6UXVldWUnKS0+UXVldWVHZXQoIElEID0+ICRRdWV1ZUlEICk7CgogICAgICAgICAgICAjIHBlcm1pc3Npb24gY2hlY2ssIGNhbiB3ZSBjcmVhdGUgbmV3IHRpY2tldHMgaW4gcXVldWUKICAgICAgICAgICAgbmV4dCBRVUVVRUlEIGlmICEkVXNlckdyb3Vwc3sgJFF1ZXVlRGF0YXtHcm91cElEfSB9OwoKICAgICAgICAgICAgbXkgJFN0cmluZyA9ICRDb25maWdPYmplY3QtPkdldCgnVGlja2V0OjpGcm9udGVuZDo6TmV3UXVldWVTZWxlY3Rpb25TdHJpbmcnKQogICAgICAgICAgICAgICAgfHwgJzxSZWFsbmFtZT4gPDxFbWFpbD4+IC0gUXVldWU6IDxRdWV1ZT4nOwogICAgICAgICAgICAkU3RyaW5nID1+IHMvPFF1ZXVlPi8kUXVldWVEYXRhe05hbWV9L2c7CiAgICAgICAgICAgICRTdHJpbmcgPX4gcy88UXVldWVDb21tZW50Pi8kUXVldWVEYXRhe0NvbW1lbnR9L2c7CiAgICAgICAgICAgIGlmICggJENvbmZpZ09iamVjdC0+R2V0KCdUaWNrZXQ6OkZyb250ZW5kOjpOZXdRdWV1ZVNlbGVjdGlvblR5cGUnKSBuZSAnUXVldWUnICkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgbXkgJVN5c3RlbUFkZHJlc3NEYXRhID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlN5c3RlbUFkZHJlc3MnKS0+U3lzdGVtQWRkcmVzc0dldCgKICAgICAgICAgICAgICAgICAgICBJRCA9PiAkVG9zeyRRdWV1ZUlEfSwKICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAkU3RyaW5nID1+IHMvPFJlYWxuYW1lPi8kU3lzdGVtQWRkcmVzc0RhdGF7UmVhbG5hbWV9L2c7CiAgICAgICAgICAgICAgICAkU3RyaW5nID1+IHMvPEVtYWlsPi8kU3lzdGVtQWRkcmVzc0RhdGF7TmFtZX0vZzsKICAgICAgICAgICAgfQogICAgICAgICAgICAkTmV3VG9zeyRRdWV1ZUlEfSA9ICRTdHJpbmc7CiAgICAgICAgfQogICAgfQoKICAgICMgYWRkIGVtcHR5IHNlbGVjdGlvbgogICAgJE5ld1Rvc3snJ30gPSAnLSc7CiAgICByZXR1cm4gXCVOZXdUb3M7Cn0KCnN1YiBfR2V0Q29tcG9zZURlZmF1bHRzIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgaWYgKCAhJFBhcmFte1RpY2tldElEfSApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gJ05vIFRpY2tldElEIGdpdmVuISBQbGVhc2UgY29udGFjdCB0aGUgYWRtaW4uJywKICAgICAgICApOwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICBteSAlQ29tcG9zZURhdGE7CgogICAgIyBnZXQgdGlja2V0IG9iamVjdAogICAgbXkgJFRpY2tldE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpUaWNrZXQnKTsKCiAgICAjIGdldCBsYXN0IGN1c3RvbWVyIGFydGljbGUgb3Igc2VsZWN0ZWQgYXJ0aWNsZSAuLi4KICAgIG15ICVEYXRhOwogICAgaWYgKCAkUGFyYW17QXJ0aWNsZUlEfSApIHsKICAgICAgICAlRGF0YSA9ICRUaWNrZXRPYmplY3QtPkFydGljbGVHZXQoIEFydGljbGVJRCA9PiAkUGFyYW17QXJ0aWNsZUlEfSApOwogICAgfQogICAgZWxzZSB7CiAgICAgICAgJURhdGEgPSAkVGlja2V0T2JqZWN0LT5BcnRpY2xlTGFzdEN1c3RvbWVyQXJ0aWNsZSgKICAgICAgICAgICAgVGlja2V0SUQgPT4gJFBhcmFte1RpY2tldElEfSwKICAgICAgICApOwogICAgfQoKICAgICMgY2hlY2sgYXJ0aWNsZSB0eXBlIGFuZCByZXBsYWNlIFRvIHdpdGggRnJvbSAoaW4gY2FzZSkKICAgIGlmICggJERhdGF7U2VuZGVyVHlwZX0gIX4gL2N1c3RvbWVyLyApIHsKICAgICAgICBteSAkVG8gICA9ICREYXRhe1RvfTsKICAgICAgICBteSAkRnJvbSA9ICREYXRhe0Zyb219OwoKICAgICAgICAjIHNldCBPcmlnRnJvbSBmb3IgY29ycmVjdCBlbWFpbCBxdW90aW5nICh4eHh4IHdyb3RlKQogICAgICAgICREYXRhe09yaWdGcm9tfSA9ICREYXRhe0Zyb219OwoKICAgICAgICAjIHJlcGxhY2UgRnJvbS9UbywgVG8vRnJvbSBiZWNhdXNlIHNlbmRlciBpcyBhZ2VudAogICAgICAgICREYXRhe0Zyb219ICAgID0gJFRvOwogICAgICAgICREYXRhe1RvfSAgICAgID0gJERhdGF7RnJvbX07CiAgICAgICAgJERhdGF7UmVwbHlUb30gPSAnJzsKICAgIH0KICAgIGVsc2UgewoKICAgICAgICAjIHNldCBPcmlnRnJvbSBmb3IgY29ycmVjdCBlbWFpbCBxdW90aW5nICh4eHh4IHdyb3RlKQogICAgICAgICREYXRhe09yaWdGcm9tfSA9ICREYXRhe0Zyb219OwogICAgfQoKICAgICMgYnVpbGQgT3JpZ0Zyb21OYW1lICh0byBvbmx5IHVzZSB0aGUgcmVhbG5hbWUpCiAgICAkRGF0YXtPcmlnRnJvbU5hbWV9ID0gJERhdGF7T3JpZ0Zyb219OwogICAgJERhdGF7T3JpZ0Zyb21OYW1lfSA9fiBzLzwuKj58XCguKlwpfFwifDt8LC8vZzsKICAgICREYXRhe09yaWdGcm9tTmFtZX0gPX4gcy8oICQpfCggICQpLy9nOwoKICAgIG15ICVUaWNrZXQgPSAkVGlja2V0T2JqZWN0LT5UaWNrZXRHZXQoCiAgICAgICAgVGlja2V0SUQgPT4gJFBhcmFte1RpY2tldElEfSwKICAgICAgICBVc2VySUQgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICk7CgogICAgIyBnZXQgY3VzdG9tZXIgZGF0YQogICAgbXkgJUN1c3RvbWVyOwogICAgaWYgKCAkVGlja2V0e0N1c3RvbWVyVXNlcklEfSApIHsKICAgICAgICAlQ3VzdG9tZXIgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6Q3VzdG9tZXJVc2VyJyktPkN1c3RvbWVyVXNlckRhdGFHZXQoCiAgICAgICAgICAgIFVzZXIgPT4gJFRpY2tldHtDdXN0b21lclVzZXJJRH0KICAgICAgICApOwogICAgfQoKICAgICMgZ2V0IGNvbmZpZyBvYmplY3QKICAgIG15ICRDb25maWdPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpOwoKICAgICMgcHJlcGFyZSBib2R5LCBzdWJqZWN0LCBSZXBseVRvIC4uLgogICAgIyByZS13cmFwIGJvZHkgaWYgZXhpc3RzCiAgICBpZiAoICREYXRhe0JvZHl9ICkgewogICAgICAgICREYXRhe0JvZHl9ID1+IHMvXHQvIC9nOwogICAgICAgIG15ICRRdW90ZSA9ICRDb25maWdPYmplY3QtPkdldCgnVGlja2V0OjpGcm9udGVuZDo6UXVvdGUnKTsKICAgICAgICBpZiAoJFF1b3RlKSB7CiAgICAgICAgICAgICREYXRhe0JvZHl9ID1+IHMvXG4vXG4kUXVvdGUgL2c7CiAgICAgICAgICAgICREYXRhe0JvZHl9ID0gIlxuJFF1b3RlICIgLiAkRGF0YXtCb2R5fTsKICAgICAgICB9CiAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICREYXRhe0JvZHl9ID0gIlxuIiAuICREYXRhe0JvZHl9OwogICAgICAgICAgICBpZiAoICREYXRhe0NyZWF0ZWR9ICkgewogICAgICAgICAgICAgICAgJERhdGF7Qm9keX0gPSAiRGF0ZTogJERhdGF7Q3JlYXRlZH1cbiIgLiAkRGF0YXtCb2R5fTsKICAgICAgICAgICAgfQogICAgICAgICAgICBmb3IgKHF3KFN1YmplY3QgUmVwbHlUbyBSZXBseS1UbyBDYyBUbyBGcm9tKSkgewogICAgICAgICAgICAgICAgaWYgKCAkRGF0YXskX30gKSB7CiAgICAgICAgICAgICAgICAgICAgJERhdGF7Qm9keX0gPSAiJF86ICREYXRheyRffVxuIiAuICREYXRhe0JvZHl9OwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgICREYXRhe0JvZHl9ID0gIlxuLS0tLSBNZXNzYWdlIGZyb20gJERhdGF7RnJvbX0gLS0tXG5cbiIgLiAkRGF0YXtCb2R5fTsKICAgICAgICAgICAgJERhdGF7Qm9keX0gLj0gIlxuLS0tLSBFbmQgTWVzc2FnZSAtLS1cbiI7CiAgICAgICAgfQogICAgfQoKICAgICMgY2hlY2sgaWYgQ2MgcmVjaXBpZW50cyBzaG91bGQgYmUgdXNlZAogICAgaWYgKCAkQ29uZmlnT2JqZWN0LT5HZXQoJ1RpY2tldDo6RnJvbnRlbmQ6OkNvbXBvc2VFeGNsdWRlQ2NSZWNpcGllbnRzJykgKSB7CiAgICAgICAgJERhdGF7Q2N9ID0gJyc7CiAgICB9CgogICAgIyBnZXQgc3lzdGVtIGFkZHJlc3Mgb2JqZWN0CiAgICBteSAkU3lzdGVtQWRkcmVzc09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpTeXN0ZW1BZGRyZXNzJyk7CgogICAgIyBhZGQgbm90IGxvY2FsIFRvIGFkZHJlc3NlcyB0byBDYwogICAgZm9yIG15ICRFbWFpbCAoIE1haWw6OkFkZHJlc3MtPnBhcnNlKCAkRGF0YXtUb30gKSApIHsKICAgICAgICBteSAkSXNMb2NhbCA9ICRTeXN0ZW1BZGRyZXNzT2JqZWN0LT5TeXN0ZW1BZGRyZXNzSXNMb2NhbEFkZHJlc3MoCiAgICAgICAgICAgIEFkZHJlc3MgPT4gJEVtYWlsLT5hZGRyZXNzKCksCiAgICAgICAgKTsKICAgICAgICBpZiAoICEkSXNMb2NhbCApIHsKICAgICAgICAgICAgaWYgKCAkRGF0YXtDY30gKSB7CiAgICAgICAgICAgICAgICAkRGF0YXtDY30gLj0gJywgJzsKICAgICAgICAgICAgfQogICAgICAgICAgICAkRGF0YXtDY30gLj0gJEVtYWlsLT5mb3JtYXQoKTsKICAgICAgICB9CiAgICB9CgogICAgIyBjaGVjayBSZXBseVRvCiAgICBpZiAoICREYXRhe1JlcGx5VG99ICkgewogICAgICAgICREYXRhe1RvfSA9ICREYXRhe1JlcGx5VG99OwogICAgfQogICAgZWxzZSB7CiAgICAgICAgJERhdGF7VG99ID0gJERhdGF7RnJvbX07CgogICAgICAgICMgdHJ5IHRvIHJlbW92ZSBzb21lIHdyb25nIHRleHQgdG8gZnJvbSBsaW5lIChieSB3YXkgb2YgLi4uKQogICAgICAgICMgYWRkZWQgYnkgc29tZSBzdHJhbmdlIG1haWwgcHJvZ3JhbXMgb24gYm91bmNlCiAgICAgICAgJERhdGF7VG99ID1+IHMvKC4rP1w8Lis/XEAuKz9cPilccytcKGJ5XHMrd2F5XHMrb2ZccysuKz9cKS8kMS9pZzsKICAgIH0KCiAgICAjIGdldCB0byBlbWFpbCAoanVzdCAic29tZUBleGFtcGxlLmNvbSIpCiAgICBmb3IgbXkgJEVtYWlsICggTWFpbDo6QWRkcmVzcy0+cGFyc2UoICREYXRhe1RvfSApICkgewogICAgICAgICREYXRhe1RvRW1haWx9ID0gJEVtYWlsLT5hZGRyZXNzKCk7CiAgICB9CgogICAgIyB1c2UgY3VzdG9tZXIgZGF0YWJhc2UgZW1haWwKICAgIGlmICggJENvbmZpZ09iamVjdC0+R2V0KCdUaWNrZXQ6OkZyb250ZW5kOjpDb21wb3NlQWRkQ3VzdG9tZXJBZGRyZXNzJykgKSB7CgogICAgICAgICMgY2hlY2sgaWYgY3VzdG9tZXIgaXMgaW4gcmVjaXBpZW50IGxpc3QKICAgICAgICBpZiAoICRDdXN0b21lcntVc2VyRW1haWx9ICYmICREYXRhe1RvRW1haWx9ICF+IC9eXFEkQ3VzdG9tZXJ7VXNlckVtYWlsfVxFJC9pICkgewoKICAgICAgICAgICAgIyByZXBsYWNlIFRvIHdpdGggY3VzdG9tZXJzIGRhdGFiYXNlIGFkZHJlc3MKICAgICAgICAgICAgaWYgKCAkQ29uZmlnT2JqZWN0LT5HZXQoJ1RpY2tldDo6RnJvbnRlbmQ6OkNvbXBvc2VSZXBsYWNlU2VuZGVyQWRkcmVzcycpICkgewogICAgICAgICAgICAgICAgJERhdGF7VG99ID0gJEN1c3RvbWVye1VzZXJFbWFpbH07CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgYWRkIGN1c3RvbWVycyBkYXRhYmFzZSBhZGRyZXNzIHRvIENjCiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgaWYgKCAkRGF0YXtDY30gKSB7CiAgICAgICAgICAgICAgICAgICAgJERhdGF7Q2N9IC49ICcsICcgLiAkQ3VzdG9tZXJ7VXNlckVtYWlsfTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgICAgICREYXRhe0NjfSA9ICRDdXN0b21lcntVc2VyRW1haWx9OwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQoKICAgICMgZmluZCBkdXBsaWNhdGUgYWRkcmVzc2VzCiAgICBteSAlUmVjaXBpZW50OwogICAgZm9yIG15ICRUeXBlIChxdyhUbyBDYyBCY2MpKSB7CiAgICAgICAgaWYgKCAkRGF0YXskVHlwZX0gKSB7CiAgICAgICAgICAgIG15ICROZXdMaW5lID0gJyc7CiAgICAgICAgICAgIGZvciBteSAkRW1haWwgKCBNYWlsOjpBZGRyZXNzLT5wYXJzZSggJERhdGF7JFR5cGV9ICkgKSB7CiAgICAgICAgICAgICAgICBteSAkQWRkcmVzcyA9IGxjICRFbWFpbC0+YWRkcmVzcygpOwoKICAgICAgICAgICAgICAgICMgb25seSB1c2UgZW1haWwgYWRkcmVzc2VzIHdpdGggQCBpbnNpZGUKICAgICAgICAgICAgICAgIGlmICggJEFkZHJlc3MgJiYgJEFkZHJlc3MgPX4gL0AvICYmICEkUmVjaXBpZW50eyRBZGRyZXNzfSApIHsKICAgICAgICAgICAgICAgICAgICAkUmVjaXBpZW50eyRBZGRyZXNzfSA9IDE7CiAgICAgICAgICAgICAgICAgICAgbXkgJElzTG9jYWwgPSAkU3lzdGVtQWRkcmVzc09iamVjdC0+U3lzdGVtQWRkcmVzc0lzTG9jYWxBZGRyZXNzKAogICAgICAgICAgICAgICAgICAgICAgICBBZGRyZXNzID0+ICRBZGRyZXNzLAogICAgICAgICAgICAgICAgICAgICk7CiAgICAgICAgICAgICAgICAgICAgaWYgKCAhJElzTG9jYWwgKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgkTmV3TGluZSkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgJE5ld0xpbmUgLj0gJywgJzsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICAkTmV3TGluZSAuPSAkRW1haWwtPmZvcm1hdCgpOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICAkRGF0YXskVHlwZX0gPSAkTmV3TGluZTsKICAgICAgICB9CiAgICB9CgogICAgJFBhcmFte1Jlc3BvbnNlSUR9ID0gMTsKCiAgICAjIHNldCBubyBSaWNoVGV4dCBpbiBvcmRlciB0byBnZXQgdGV4dC9wbGFpbiB0ZW1wbGF0ZSBmb3IgdGhlIGlQaG9uZQogICAgJENvbmZpZ09iamVjdC0+U2V0KAogICAgICAgIEtleSAgID0+ICdGcm9udGVuZDo6UmljaFRleHQnLAogICAgICAgIFZhbHVlID0+IDAKICAgICk7CgogICAgIyBnZXQgdGVtcGxhdGUKICAgIG15ICRUZW1wbGF0ZUdlbmVyYXRvck9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpUZW1wbGF0ZUdlbmVyYXRvcicpOwoKICAgICREYXRhe1NhbHV0YXRpb259ID0gJFRlbXBsYXRlR2VuZXJhdG9yT2JqZWN0LT5TYWx1dGF0aW9uKAogICAgICAgIFRpY2tldElEID0+ICRQYXJhbXtUaWNrZXRJRH0sCiAgICAgICAgVXNlcklEICAgPT4gJFBhcmFte1VzZXJJRH0sCiAgICAgICAgRGF0YSAgICAgPT4gXCVEYXRhLAogICAgKTsKICAgICREYXRhe1NpZ25hdHVyZX0gPSAkVGVtcGxhdGVHZW5lcmF0b3JPYmplY3QtPlNpZ25hdHVyZSgKICAgICAgICBUaWNrZXRJRCA9PiAkUGFyYW17VGlja2V0SUR9LAogICAgICAgIFVzZXJJRCAgID0+ICRQYXJhbXtVc2VySUR9LAogICAgICAgIERhdGEgICAgID0+IFwlRGF0YSwKICAgICk7CgogICAgJURhdGEgPSAkVGVtcGxhdGVHZW5lcmF0b3JPYmplY3QtPkF0dHJpYnV0ZXMoCiAgICAgICAgVGlja2V0SUQgICA9PiAkUGFyYW17VGlja2V0SUR9LAogICAgICAgIEFydGljbGVJRCAgPT4gJFBhcmFte0FydGljbGVJRH0sCiAgICAgICAgUmVzcG9uc2VJRCA9PiAkUGFyYW17UmVzcG9uc2VJRH0sCiAgICAgICAgRGF0YSAgICAgICA9PiBcJURhdGEsCiAgICAgICAgVXNlcklEICAgICA9PiAkUGFyYW17VXNlcklEfSwKICAgICk7CgogICAgbXkgJFNhbHV0YXRpb24gPSAkRGF0YXtTYWx1dGF0aW9ufTsKICAgIG15ICRPcmlnRnJvbSAgID0gJERhdGF7T3JpZ0Zyb219OwogICAgbXkgJFdyb3RlICAgICAgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6Okxhbmd1YWdlJyktPkdldCgnd3JvdGUnKTsKICAgIG15ICRCb2R5ICAgICAgID0gJERhdGF7Qm9keX07CiAgICBteSAkU2lnbmF0dXJlICA9ICREYXRhe1NpZ25hdHVyZX07CgogICAgbXkgJFJlc3BvbnNlRm9ybWF0ID0gIiRTYWx1dGF0aW9uIFxuICRPcmlnRnJvbSAkV3JvdGU6IFxuICRCb2R5IFxuICRTaWduYXR1cmUgXG4iOwoKICAgICMgcmVzdG9yZSBxZGF0YSBmb3JtYXR0aW5nIGZvciBPdXRwdXQgcmVwbGFjZW1lbnQKICAgICRSZXNwb25zZUZvcm1hdCA9fiBzLyZxdW90Oy8iL2dpOwoKICAgICMgcHJlcGFyZSBzdWJqZWN0CiAgICBteSAkVG4gPSAkVGlja2V0T2JqZWN0LT5UaWNrZXROdW1iZXJMb29rdXAoIFRpY2tldElEID0+ICRQYXJhbXtUaWNrZXRJRH0gKTsKICAgICRQYXJhbXtTdWJqZWN0fSA9ICRUaWNrZXRPYmplY3QtPlRpY2tldFN1YmplY3RCdWlsZCgKICAgICAgICBUaWNrZXROdW1iZXIgPT4gJFRuLAogICAgICAgIFN1YmplY3QgICAgICA9PiAkUGFyYW17U3ViamVjdH0gfHwgJycsCiAgICApOwoKICAgICMgZ2V0IGNoZWNrIGl0ZW0gb2JqZWN0CiAgICBteSAkQ2hlY2tJdGVtT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkNoZWNrSXRlbScpOwoKICAgICMgY2hlY2sgc29tZSB2YWx1ZXMKICAgIFJFQ0lQSUVOVDoKICAgIGZvciBteSAkTGluZSAocXcoVG8gQ2MgQmNjKSkgewogICAgICAgIG5leHQgUkVDSVBJRU5UIGlmICEkRGF0YXskTGluZX07CiAgICAgICAgZm9yIG15ICRFbWFpbCAoIE1haWw6OkFkZHJlc3MtPnBhcnNlKCAkRGF0YXskTGluZX0gKSApIHsKICAgICAgICAgICAgaWYgKCAhJENoZWNrSXRlbU9iamVjdC0+Q2hlY2tFbWFpbCggQWRkcmVzcyA9PiAkRW1haWwtPmFkZHJlc3MoKSApICkgewogICAgICAgICAgICAgICAgbXkgJFNlcnZlckVycm9yID0gJENoZWNrSXRlbU9iamVjdC0+Q2hlY2tFcnJvcigpOwogICAgICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiRXJyb3Igb24gZmllbGQgXCIkTGluZVwiIFxuICRTZXJ2ZXJFcnJvciIsCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQogICAgaWYgKCAkRGF0YXtGcm9tfSApIHsKICAgICAgICBmb3IgbXkgJEVtYWlsICggTWFpbDo6QWRkcmVzcy0+cGFyc2UoICREYXRhe0Zyb219ICkgKSB7CiAgICAgICAgICAgIGlmICggISRDaGVja0l0ZW1PYmplY3QtPkNoZWNrRW1haWwoIEFkZHJlc3MgPT4gJEVtYWlsLT5hZGRyZXNzKCkgKSApIHsKICAgICAgICAgICAgICAgIG15ICRTZXJ2ZXJFcnJvciA9ICRDaGVja0l0ZW1PYmplY3QtPkNoZWNrRXJyb3IoKTsKICAgICAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIkVycm9yIG9uIGZpZWxkIFwiRnJvbVwiICBcbiAkU2VydmVyRXJyb3IiLAogICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KCiAgICAlQ29tcG9zZURhdGEgPSAoCiAgICAgICAgRnJvbSAgICA9PiAkRGF0YXtGcm9tfSwKICAgICAgICBUbyAgICAgID0+ICREYXRhe1RvfSwKICAgICAgICBDYyAgICAgID0+ICREYXRhe0NjfSwKICAgICAgICBCY2MgICAgID0+ICREYXRhe0JjY30sCiAgICAgICAgUmVwbHlUbyA9PiAkRGF0YXtSZXBseVRvfSwKICAgICAgICBTdWJqZWN0ID0+ICREYXRhe1N1YmplY3R9LAogICAgICAgIEJvZHkgICAgPT4gJFJlc3BvbnNlRm9ybWF0LAogICAgKTsKICAgIHJldHVybiAlQ29tcG9zZURhdGE7Cn0KCnN1YiBfR2V0Tm90ZVR5cGVzIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgJURlZmF1bHROb3RlVHlwZXMgPSAleyAkU2VsZi0+e0NvbmZpZ30tPntBcnRpY2xlVHlwZXN9IH07CgogICAgbXkgJU5vdGVUeXBlcyA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpUaWNrZXQnKS0+QXJ0aWNsZVR5cGVMaXN0KCBSZXN1bHQgPT4gJ0hBU0gnICk7CiAgICBmb3IgKCBzb3J0IGtleXMgJU5vdGVUeXBlcyApIHsKICAgICAgICBpZiAoICEkRGVmYXVsdE5vdGVUeXBlc3sgJE5vdGVUeXBlc3skX30gfSApIHsKICAgICAgICAgICAgZGVsZXRlICROb3RlVHlwZXN7JF99OwogICAgICAgIH0KICAgIH0KICAgIHJldHVybiBcJU5vdGVUeXBlczsKfQoKMTsKCj1iYWNrCgo9aGVhZDEgVEVSTVMgQU5EIENPTkRJVElPTlMKClRoaXMgc29mdHdhcmUgaXMgcGFydCBvZiB0aGUgT1RSUyBwcm9qZWN0IChMPGh0dHBzOi8vb3Rycy5vcmcvPikuCgpUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQp0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKZGlkIG5vdCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIEw8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dD4uCgo9Y3V0Cg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE4IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgpwYWNrYWdlIEtlcm5lbDo6U3lzdGVtOjpXZWI6OkludGVyZmFjZWlQaG9uZUhhbmRsZTsKCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKCm91ciBAT2JqZWN0RGVwZW5kZW5jaWVzID0gKAogICAgJ0tlcm5lbDo6Q29uZmlnJywKICAgICdLZXJuZWw6OlN5c3RlbTo6QXV0aCcsCiAgICAnS2VybmVsOjpTeXN0ZW06OkpTT04nLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpMb2cnLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpUaW1lJywKICAgICdLZXJuZWw6OlN5c3RlbTo6VXNlcicsCiAgICAnS2VybmVsOjpTeXN0ZW06OldlYjo6UmVxdWVzdCcsCik7Cgo9aGVhZDEgTkFNRQoKS2VybmVsOjpTeXN0ZW06OldlYjo6SW50ZXJmYWNlaVBob25lSGFuZGxlIC0gdGhlIGlQaG9uZSBIYW5kbGUgd2ViIGludGVyZmFjZQoKPWhlYWQxIFNZTk9QU0lTCgp0aGUgZ2xvYmFsIGlQaG9uZSBIYW5kbGUgd2ViIGludGVyZmFjZQoKPWhlYWQxIFBVQkxJQyBJTlRFUkZBQ0UKCj1vdmVyIDQKCj1jdXQKCj1pdGVtIG5ldygpCgpjcmVhdGUgaVBob25lSGFuZGxlIHdlYiBpbnRlcmZhY2Ugb2JqZWN0CgogICAgdXNlIEtlcm5lbDo6U3lzdGVtOjpXZWI6OkludGVyZmFjZWlQaG9uZUhhbmRsZTsKCiAgICBteSAkSW50ZXJmYWNlQWdlbnQgPSBLZXJuZWw6OlN5c3RlbTo6V2ViOjpJbnRlcmZhY2VpUGhvbmVIYW5kbGUtPm5ldygKICAgICAgICBXZWJSZXF1ZXN0ID0+IENHSTo6RmFzdC0+bmV3KCksICMgb3B0aW9uYWwsIGUuIGcuIGlmIGZhc3QgY2dpIGlzIHVzZWQsIHRoZSBDR0kgb2JqZWN0IGlzIGFscmVhZHkgcHJvdmlkZWQKICAgICk7Cgo9Y3V0CgpzdWIgbmV3IHsKICAgIG15ICggJFR5cGUsICVQYXJhbSApID0gQF87CgogICAgIyBhbGxvY2F0ZSBuZXcgaGFzaCBmb3Igb2JqZWN0CiAgICBteSAkU2VsZiA9IHt9OwogICAgYmxlc3MoICRTZWxmLCAkVHlwZSApOwoKICAgICRLZXJuZWw6Ok9NLT5PYmplY3RQYXJhbUFkZCgKICAgICAgICAnS2VybmVsOjpTeXN0ZW06OkxvZycgPT4gewogICAgICAgICAgICBMb2dQcmVmaXggPT4gJ09UUlMtaVBob25lSGFuZGxlJywKICAgICAgICB9LAogICAgICAgICdLZXJuZWw6OlN5c3RlbTo6V2ViOjpSZXF1ZXN0JyA9PiB7CiAgICAgICAgICAgIFdlYlJlcXVlc3QgPT4gJFBhcmFte1dlYlJlcXVlc3R9IHx8IDAsCiAgICAgICAgfSwKICAgICk7CgogICAgIyBnZXQgbG9nIGZpbGVuYW1lCiAgICAkU2VsZi0+e0RlYnVnTG9nRmlsZX0gPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpLT5HZXQoJ2lQaG9uZTo6TG9nRmlsZScpIHx8ICcnOwoKICAgIHJldHVybiAkU2VsZjsKfQoKPWl0ZW0gUnVuKCkKCmV4ZWN1dGUgdGhlIG9iamVjdAoKICAgIG15ICRSZXN1bHQgPSAkSW50ZXJmYWNlQWdlbnQtPlJ1bigpOwoKUmV0dXJuczoKICAgICRSZXN1bHQgPSB7CiAgICAgICAgU3VjY2VzcyA9PiAxLAogICAgICAgIERhdGEgICAgPT4gJEFycmF5T2ZIYXNoZXNSZWYsCiAgICB9CgpPcjoKICAgICRSZXN1bHQgPSAkQXJyYXlSZWYsCgpPcjoKICAgICRSZXN1bHQgPSB7CiAgICAgICAgUmVzdWx0ICAgICAgID0+IDAsCiAgICAgICAgRXJyb3JNZXNzYWdlID0+ICdzb21lIG1lc3NhZ2UnLAogICAgfQoKPWN1dAoKc3ViIFJ1biB7CiAgICBteSAoJFNlbGYpID0gQF87CgogICAgIyBnZXQgcGFyYW0gb2JqZWN0CiAgICBteSAkUGFyYW1PYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6V2ViOjpSZXF1ZXN0Jyk7CgogICAgIyBzZXQgY29tbW9uIHZhcmlhYmxlcwogICAgbXkgJFVzZXIgICAgICAgICAgICA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdVc2VyJyApICAgICB8fCAnJzsKICAgIG15ICRQdyAgICAgICAgICAgICAgPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnUGFzc3dvcmQnICkgfHwgJyc7CiAgICBteSAkUmVxdWVzdGVkT2JqZWN0ID0gJFBhcmFtT2JqZWN0LT5HZXRQYXJhbSggUGFyYW0gPT4gJ09iamVjdCcgKSAgIHx8ICcnOwogICAgbXkgJE1ldGhvZCAgICAgICAgICA9ICRQYXJhbU9iamVjdC0+R2V0UGFyYW0oIFBhcmFtID0+ICdNZXRob2QnICkgICB8fCAnJzsKICAgIG15ICREYXRhICAgICAgICAgICAgPSAkUGFyYW1PYmplY3QtPkdldFBhcmFtKCBQYXJhbSA9PiAnRGF0YScgKTsKICAgIG15ICRQYXJhbVNjYWxhciA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpKU09OJyktPkRlY29kZSggRGF0YSA9PiAkRGF0YSApOwoKICAgIG15ICVQYXJhbTsKICAgIGlmICgkUGFyYW1TY2FsYXIpIHsKICAgICAgICAlUGFyYW0gPSAleyRQYXJhbVNjYWxhcn07CiAgICB9CgogICAgIyBnZXQgY29uZmlnIG9iamVjdAogICAgbXkgJENvbmZpZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyk7CgogICAgIyBpbmJvdW5kIGxvZwogICAgaWYgKCAkQ29uZmlnT2JqZWN0LT5HZXQoJ2lQaG9uZTo6RGVidWdMb2cnKSApIHsKICAgICAgICBteSAkTWVzc2FnZSA9ICdVc2VyPScgLiAkVXNlciAuICcmUGFzc3dvcmQ9KioqKicgLiAnJk9iamVjdD0nIC4gJFJlcXVlc3RlZE9iamVjdAogICAgICAgICAgICAuICcmTWV0aG9kPScgLiAkTWV0aG9kIC4gJyZEYXRhPScgLiAkRGF0YTsKCiAgICAgICAgJFNlbGYtPl9Mb2coCiAgICAgICAgICAgIERpcmVjdGlvbiA9PiAnSW5ib3VuZCcsCiAgICAgICAgICAgIE1lc3NhZ2UgICA9PiAkTWVzc2FnZSwKICAgICAgICApOwogICAgfQoKICAgICMgY2hlY2sgbmVlZGVkCiAgICBpZiAoICEkVXNlciB8fCAhJFJlcXVlc3RlZE9iamVjdCB8fCAhJE1ldGhvZCApIHsKICAgICAgICBteSAkTWVzc2FnZSA9ICJOZWVkIFVzZXIsIE9iamVjdCBhbmQgTWV0aG9kISI7CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICRNZXNzYWdlLAogICAgICAgICk7CgogICAgICAgIHJldHVybiAkU2VsZi0+X1Jlc3VsdCgKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgU3VjY2VzcyAgICAgID0+IDAsCiAgICAgICAgICAgICAgICBFcnJvck1lc3NhZ2UgPT4gJE1lc3NhZ2UsCiAgICAgICAgICAgIH0sCiAgICAgICAgKTsKICAgIH0KCiAgICAjIGFnZW50IEF1dGgKICAgIG15ICVQYXJhbUZpeGVkOwogICAgaWYgKDEpIHsKICAgICAgICBteSAkVXNlckxvZ2luID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkF1dGgnKS0+QXV0aCgKICAgICAgICAgICAgVXNlciA9PiAkVXNlciwKICAgICAgICAgICAgUHcgICA9PiAkUHcKICAgICAgICApOwoKICAgICAgICBpZiAoICEkVXNlckxvZ2luICkgewogICAgICAgICAgICBteSAkTWVzc2FnZSA9ICJBdXRoIGZvciB1c2VyICRVc2VyIGZhaWxlZCEiOwogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdub3RpY2UnLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gJE1lc3NhZ2UsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICByZXR1cm4gJFNlbGYtPl9SZXN1bHQoCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgU3VjY2VzcyAgICAgID0+IDAsCiAgICAgICAgICAgICAgICAgICAgRXJyb3JNZXNzYWdlID0+ICRNZXNzYWdlLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgICMgc2V0IHVzZXIgaWQKICAgICAgICBteSAkVXNlcklEID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlVzZXInKS0+VXNlckxvb2t1cCgKICAgICAgICAgICAgVXNlckxvZ2luID0+ICRVc2VyTG9naW4sCiAgICAgICAgKTsKICAgICAgICBpZiAoICEkVXNlcklEICkgewoKICAgICAgICAgICAgcmV0dXJuICRTZWxmLT5fUmVzdWx0KAogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgIFN1Y2Nlc3MgICAgICA9PiAwLAogICAgICAgICAgICAgICAgICAgIEVycm9yTWVzc2FnZSA9PiAiVXNlciAkVXNlckxvZ2luIG5vdCBmb3VuZCwgVXNlcklEIGNhbiBub3QgYmUgc2V0ISIsCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICApOwogICAgICAgIH0KCiAgICAgICAgJFBhcmFtRml4ZWR7VXNlcklEfSA9ICRVc2VySUQ7CiAgICB9CgogICAgIyBzeXN0ZW0gQXV0aAogICAgIyBUaGlzIGNvZGUgaXMgbm90IG5lZWRlZCBhbmQgaGFzIHRvIGJlIHJlbW92ZWQhCiAgICBlbHNlIHsKICAgICAgICBteSAkUmVxdWlyZWRVc2VyICAgICA9ICRDb25maWdPYmplY3QtPkdldCgnU09BUDo6VXNlcicpOwogICAgICAgIG15ICRSZXF1aXJlZFBhc3N3b3JkID0gJENvbmZpZ09iamVjdC0+R2V0KCdTT0FQOjpQYXNzd29yZCcpOwoKICAgICAgICBpZiAoCiAgICAgICAgICAgICFkZWZpbmVkICRSZXF1aXJlZFVzZXIKICAgICAgICAgICAgfHwgIWxlbmd0aCAkUmVxdWlyZWRVc2VyCiAgICAgICAgICAgIHx8ICFkZWZpbmVkICRSZXF1aXJlZFBhc3N3b3JkIHx8ICFsZW5ndGggJFJlcXVpcmVkUGFzc3dvcmQKICAgICAgICAgICAgKQogICAgICAgIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnbm90aWNlJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICdTT0FQOjpVc2VyIG9yIFNPQVA6OlBhc3N3b3JkIGlzIGVtcHR5LCBTT0FQIGFjY2VzcyBkZW5pZWQhJywKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIHJldHVybiAkU2VsZi0+X1Jlc3VsdCgpOwogICAgICAgIH0KCiAgICAgICAgaWYgKCAkVXNlciBuZSAkUmVxdWlyZWRVc2VyIHx8ICRQdyBuZSAkUmVxdWlyZWRQYXNzd29yZCApIHsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnbm90aWNlJywKICAgICAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJBdXRoIGZvciB1c2VyICRVc2VyIGZhaWxlZCEiLAogICAgICAgICAgICApOwoKICAgICAgICAgICAgcmV0dXJuICRTZWxmLT5fUmVzdWx0KCk7CiAgICAgICAgfQogICAgfQoKICAgICMgY2hlY2sgb2JqZWN0IHdoaXRlIGxpc3QKICAgIG15ICRPYmplY3RXaGl0ZUxpc3QgPSAkQ29uZmlnT2JqZWN0LT5HZXQoJ2lQaG9uZTo6QVBJOjpPYmplY3QnKTsKICAgIGlmICgkT2JqZWN0V2hpdGVMaXN0KSB7CiAgICAgICAgaWYgKCAhZGVmaW5lZCAkT2JqZWN0V2hpdGVMaXN0LT57JFJlcXVlc3RlZE9iamVjdH0gKSB7CiAgICAgICAgICAgIG15ICRNZXNzYWdlID0gIk5vIGFjY2VzcyB0byAnJFJlcXVlc3RlZE9iamVjdCchIjsKICAgICAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gJE1lc3NhZ2UsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICByZXR1cm4gJFNlbGYtPl9SZXN1bHQoCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgU3VjY2VzcyAgICAgID0+IDAsCiAgICAgICAgICAgICAgICAgICAgRXJyb3JNZXNzYWdlID0+ICRNZXNzYWdlLAogICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgKTsKICAgICAgICB9CiAgICAgICAgaWYgKAogICAgICAgICAgICAkT2JqZWN0V2hpdGVMaXN0LT57JFJlcXVlc3RlZE9iamVjdH0KICAgICAgICAgICAgJiYgJE1ldGhvZCAhfiBteyRPYmplY3RXaGl0ZUxpc3QtPnskUmVxdWVzdGVkT2JqZWN0fX0KICAgICAgICAgICAgKQogICAgICAgIHsKICAgICAgICAgICAgbXkgJE1lc3NhZ2UgPSAiTm8gYWNjZXNzIG1ldGhvZCAnJE1ldGhvZCgpJyBmcm9tICckUmVxdWVzdGVkT2JqZWN0JyEiOwogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAkTWVzc2FnZSwKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgIHJldHVybiAkU2VsZi0+X1Jlc3VsdCgKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBTdWNjZXNzICAgICAgPT4gMCwKICAgICAgICAgICAgICAgICAgICBFcnJvck1lc3NhZ2UgPT4gJE1lc3NhZ2UsCiAgICAgICAgICAgICAgICB9LAogICAgICAgICAgICApOwogICAgICAgIH0KICAgIH0KCiAgICAjIGNoYW5nZSB0byBPYmplY3RNYW5hZ2VyIGltcGxpZXMgdGhhdCB0aGVyZSBhcmUgbm8gY3JlYXRlZCBvYmplY3RzIGluICRTZWxmCiAgICAjICAgICB0aGUgZm9sbG93aW5nIGlzIGEgbGlzdCBvZiBvYmplY3RzIHRoYXQgY291bGQgYmUgb3JpZ2luYWxseSBjcmVhdGVkCiAgICAjICAgICBvYmplY3QgbWFuYWdlciB3aWxsIGhhbmRsZSB0aGUgY3JlYXRpb24gb2YgdGhpcyBvYmplY3RzIG9uIHRoZSBmbHkKICAgICMKICAgICMgbm90IGxpc3RlZCBvYmplY3RzIHdpbGwgbm90IGJlIGNyZWF0ZWQsIHRoZSBiZWhhdmlvciBzaG91bGQgYmUgc2ltaWxhciB0aGFuIGluIHByZXZpb3VzCiAgICAjICAgICB2ZXJzaW9ucyB3aGVyZSB0aGUgb2JqZWN0IGlzIG5vdCBjcmVhdGVkIGluIGFuZCBpdCBkb2VzIG5vdCBleGlzdHMgaW4gJFNlbGYKICAgIG15ICVPYmplY3RBbGlhcyA9ICgKICAgICAgICBUaWNrZXRPYmplY3QgPT4gJ0tlcm5lbDo6U3lzdGVtOjpUaWNrZXQnLAogICAgICAgIEN1c3RvbU9iamVjdCA9PiAnS2VybmVsOjpTeXN0ZW06OmlQaG9uZUhhbmRsZScsCiAgICAgICAgaVBob25lT2JqZWN0ID0+ICdLZXJuZWw6OlN5c3RlbTo6aVBob25lSGFuZGxlJywKICAgICk7CgogICAgbXkgJExvY2FsT2JqZWN0OwogICAgaWYgKCAkT2JqZWN0QWxpYXN7JFJlcXVlc3RlZE9iamVjdH0gKSB7CiAgICAgICAgJExvY2FsT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCggJE9iamVjdEFsaWFzeyRSZXF1ZXN0ZWRPYmplY3R9ICk7CiAgICB9CgogICAgIyBjaGVjayBpZiBvYmplY3Qgd2FzIGNyZWF0ZWQKICAgIGlmICggISRMb2NhbE9iamVjdCApIHsKICAgICAgICBteSAkTWVzc2FnZSA9ICJObyBzdWNoIE9iamVjdCAkUmVxdWVzdGVkT2JqZWN0ISI7CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICRNZXNzYWdlLAogICAgICAgICk7CgogICAgICAgIHJldHVybiAkU2VsZi0+X1Jlc3VsdCgKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgU3VjY2VzcyAgICAgID0+IDAsCiAgICAgICAgICAgICAgICBFcnJvck1lc3NhZ2UgPT4gJE1lc3NhZ2UsCiAgICAgICAgICAgIH0sCiAgICAgICAgKTsKICAgIH0KCiAgICAjIGNoZWNrIGlmIG1ldGhvZCBleGlzdHMgaW4gb2JqZWN0cwogICAgaWYgKCAhJExvY2FsT2JqZWN0LT5jYW4oJE1ldGhvZCkgJiYgISRTZWxmLT5jYW4oJE1ldGhvZCkgKSB7CiAgICAgICAgbXkgJE1lc3NhZ2UgPSAiTm8gc3VjaCBtZXRob2QgJyRNZXRob2QnIGluICckUmVxdWVzdGVkT2JqZWN0JyEiOwogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnZXJyb3InLAogICAgICAgICAgICBNZXNzYWdlICA9PiAkTWVzc2FnZSwKICAgICAgICApOwoKICAgICAgICByZXR1cm4gJFNlbGYtPl9SZXN1bHQoCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIFN1Y2Nlc3MgICAgICA9PiAwLAogICAgICAgICAgICAgICAgRXJyb3JNZXNzYWdlID0+ICRNZXNzYWdlLAogICAgICAgICAgICB9LAogICAgICAgICk7CiAgICB9CgogICAgIyBjbGVhbnVwIHBhcmFtcyBpUGhvbmUgYXBwbGljYXRpb24gZG9lcyBub3Qgc2VuZCBlbXB0eSB2YWx1ZXMsIGJ1dCBzYW1lIG5hbWUgYXMgcGFyYW1ldGVyIGFzOgogICAgIyBUaWNrZXRJRCA9PiAnVGlja2V0SUQnLCB0aGlzIHZhbHVlcyB3aWxsIG5lZWQgdG8gYmUgc2V0IGFzIGVtcHR5LCBzZWUgYnVnIzk3NTIKICAgIFBBUkFNTkFNRToKICAgIGZvciBteSAkUGFyYW1OYW1lICggc29ydCBrZXlzICVQYXJhbSApIHsKICAgICAgICBuZXh0IFBBUkFNTkFNRSBpZiAhJFBhcmFteyRQYXJhbU5hbWV9OwogICAgICAgIG5leHQgUEFSQU1OQU1FIGlmICRQYXJhbXskUGFyYW1OYW1lfSBuZSAiJFBhcmFtTmFtZSI7CiAgICAgICAgJFBhcmFteyRQYXJhbU5hbWV9ID0gJyc7CiAgICB9CgogICAgIyBleGVjdXRlIG9iamVjdCBtZXRob2RzCiAgICBteSBAUmVzdWx0ID0gJExvY2FsT2JqZWN0LT4kTWV0aG9kKAogICAgICAgICVQYXJhbSwKICAgICAgICAlUGFyYW1GaXhlZCwKICAgICk7CgogICAgcmV0dXJuICRTZWxmLT5fUmVzdWx0KCBcQFJlc3VsdCApOwp9Cgo9aXRlbSBfUmVzdWx0KCkKCmVuY29kZXMgdGhlIHJlc3VsdCBhcyBhIEpTT04gb2JqZWN0CgogICAgbXkgJFJlc3VsdCA9ICRJbnRlcmZhY2VBZ2VudC0+X1Jlc3VsdCgKICAgICAgICAkQXJyYXlSZWYsICAgICAgICAgICNPcHRpb25hbCwKICAgIH07CgpPUjoKICAgIG15ICRSZXN1bHQgPSAkSW50ZXJmYWNlQWdlbnQtPl9SZXN1bHQoCiAgICAgICAgU3VjY2VzcyA9PiAxLCAgICAgICAgICAgICAgICAgICAgIyBPcHRpb25hbAogICAgICAgIERhdGEgICAgPT4gJEFycmF5SGFzaFJlZiAgICAgICAgICMgT3B0aW9uYWwsIE1hbmRhdG9yeSBpZiBTdWNjZXNzIGlzIDEKICAgICAgICBNZXNzYWdlID0+ICdzb21lIGVycm9yIG1lc3NhZ2UnICMgT3B0aW9uYWwKICAgICk7CgpSZXR1cm5zIEpTT04gcmVwcmVzZW50YXRpb24gb2Y6CiAgICAkUmVzdWx0ID0gewogICAgICAgIFN1Y2Nlc3MgPT4gJ3N1Y2Nlc3NmdWwnLAogICAgICAgIERhdGEgICAgPT4gJEFycmF5T2ZIYXNoZXNSZWYsCiAgICB9CgpPciBKU09OIHJlcHJlc2VudGF0aW9uIG9mOgogICAgJFJlc3VsdCA9IHsKICAgICAgICBSZXN1bHQgICAgICAgPT4gJ2ZhaWxlZCcsCiAgICAgICAgTWVzc2FnZSA9PiAnc29tZSBtZXNzYWdlJywKICAgIH0KCj1jdXQKCnN1YiBfUmVzdWx0IHsKICAgIG15ICggJFNlbGYsICRSZXN1bHQgKSA9IEBfOwoKICAgIG15ICVSZXN1bHRQcm90b2NvbDsKCiAgICAjIGdldCBsb2cgb2JqZWN0CiAgICBteSAkTG9nT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpOwoKICAgIGlmICgkUmVzdWx0KSB7CgogICAgICAgICMgdGhpcyBtZXRob2QgaXMgc3RpbGwgbmVlZGVkIGZvciBvdGhlciBvYmplY3RzIHRoYW4gQ3VzdG9tT2JqZWN0CiAgICAgICAgIyB0aGlzIG1ldGhvZCBpcyBhbHNvIHVzZWQgZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHkgb2Ygbm90IG1pZ3JhdGVkIEN1c3RvbU9iamVjdCBmdW5jdGlvbnMKICAgICAgICBpZiAoIHJlZiAkUmVzdWx0IGVxICdBUlJBWScgKSB7CgogICAgICAgICAgICAjIC0xIHJlc3BvbnNlIG1lYW5zIGFuIGVycm9yCiAgICAgICAgICAgIGlmICggZGVmaW5lZCBAeyRSZXN1bHR9WzBdICYmIEB7JFJlc3VsdH1bMF0gZXEgLTEgKSB7CiAgICAgICAgICAgICAgICAkUmVzdWx0UHJvdG9jb2x7UmVzdWx0fSA9ICdmYWlsZWQnOwoKICAgICAgICAgICAgICAgICMgZ2V0IGxhc3QgbG9nZ2VkIGVycm9yIGFuZCBzZXQgaXMgYXMgdGhlIGVycm9yIG1lc3NhZ2UKICAgICAgICAgICAgICAgIEtFWToKICAgICAgICAgICAgICAgIGZvciBteSAkS2V5IChxdyhlcnJvciBub3RpY2UpKSB7CiAgICAgICAgICAgICAgICAgICAgJFJlc3VsdFByb3RvY29se01lc3NhZ2V9ID0gJExvZ09iamVjdC0+R2V0TG9nRW50cnkoCiAgICAgICAgICAgICAgICAgICAgICAgIFR5cGUgPT4gJEtleSwKICAgICAgICAgICAgICAgICAgICAgICAgV2hhdCA9PiAnTWVzc2FnZScsCiAgICAgICAgICAgICAgICAgICAgKTsKICAgICAgICAgICAgICAgICAgICBsYXN0IEtFWSBpZiAkUmVzdWx0UHJvdG9jb2x7TWVzc2FnZX07CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICMgb3RoZXJ3aXNlIGlzIGFsd2F5cyBzdWNjZXNzZnVsCiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgJFJlc3VsdFByb3RvY29se1Jlc3VsdH0gPSAnc3VjY2Vzc2Z1bCc7CiAgICAgICAgICAgICAgICAkUmVzdWx0UHJvdG9jb2x7RGF0YX0gICA9ICRSZXN1bHQ7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgICMgdGhpcyBtZXRob2Qgd2lsbCBoYXZlIG1vcmUgY29udHJvbCBvdmVyIHRoZSBlcnJvciBtZXNzYWdlcwogICAgICAgIGVsc2lmICggcmVmICRSZXN1bHQgZXEgJ0hBU0gnICkgewoKICAgICAgICAgICAgIyBjaGVjayBmb3IgYSB0cnVlIHZhbHVlIGluIFN1Y2Nlc3Mga2V5CiAgICAgICAgICAgIGlmICggZGVmaW5lZCAkUmVzdWx0LT57U3VjY2Vzc30gJiYgJFJlc3VsdC0+e1N1Y2Nlc3N9ID09IDEgKSB7CiAgICAgICAgICAgICAgICAkUmVzdWx0UHJvdG9jb2x7UmVzdWx0fSA9ICdzdWNjZXNzZnVsJzsKICAgICAgICAgICAgICAgICRSZXN1bHRQcm90b2NvbHtEYXRhfSAgID0gJFJlc3VsdC0+e0RhdGF9OwogICAgICAgICAgICB9CgogICAgICAgICAgICAjIG90aGVyd2lzZSBpcyBhbiBlcnJvcgogICAgICAgICAgICBlbHNpZiAoIGRlZmluZWQgJFJlc3VsdC0+e1N1Y2Nlc3N9ICYmICEkUmVzdWx0LT57U3VjY2Vzc30gKSB7CiAgICAgICAgICAgICAgICAkUmVzdWx0UHJvdG9jb2x7UmVzdWx0fSAgPSAnZmFpbGVkJzsKICAgICAgICAgICAgICAgICRSZXN1bHRQcm90b2NvbHtNZXNzYWdlfSA9ICRSZXN1bHQtPntFcnJvck1lc3NhZ2V9CiAgICAgICAgICAgICAgICAgICAgfHwgJ1Vua25vd24gRXJyb3IsIHBsZWFzZSBjb250YWN0IHN5c3RlbSBhZG1pbmlzdHJhdG9yIHRvIGNoZWNrIE9UUlMgTG9ncyEnOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAjIHN1Y2Nlc3MgZmFsbC1iYWNrIGlmIHJlc3VsdCBpcyBub3QgYW4gQVJSQVkgb3IgSEFTSAogICAgICAgIGVsc2UgewogICAgICAgICAgICAkUmVzdWx0UHJvdG9jb2x7UmVzdWx0fSA9ICdzdWNjZXNzZnVsJzsKICAgICAgICAgICAgJFJlc3VsdFByb3RvY29se0RhdGF9ICAgPSAkUmVzdWx0OwogICAgICAgIH0KICAgIH0KCiAgICAjIGZhaWxlZCBmYWxsLWJhY2sgaWYgdGhlcmUgd2FzIG5vIHJlc3BvbnNlCiAgICBlbHNlIHsKICAgICAgICAkUmVzdWx0UHJvdG9jb2x7UmVzdWx0fSA9ICdmYWlsZWQnOwoKICAgICAgICAjIGdldCBsYXN0IGxvZ2dlZCBlcnJvciBhbmQgc2V0IGlzIGFzIHRoZSBlcnJvciBtZXNzYWdlCiAgICAgICAgS0VZOgogICAgICAgIGZvciBteSAkS2V5IChxdyhlcnJvciBub3RpY2UpKSB7CiAgICAgICAgICAgICRSZXN1bHRQcm90b2NvbHtNZXNzYWdlfSA9ICRMb2dPYmplY3QtPkdldExvZ0VudHJ5KAogICAgICAgICAgICAgICAgVHlwZSA9PiAkS2V5LAogICAgICAgICAgICAgICAgV2hhdCA9PiAnTWVzc2FnZScsCiAgICAgICAgICAgICk7CiAgICAgICAgICAgIGxhc3QgS0VZIGlmICRSZXN1bHRQcm90b2NvbHtNZXNzYWdlfTsKICAgICAgICB9CiAgICB9CgogICAgIyBzZXQgcmVzdWx0IHRvIGEgdmFyaWFibGUgZm9yIGVhc3kgbG9nIG91dHB1dAogICAgbXkgJEpTT05SZXN1bHQgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6SlNPTicpLT5FbmNvZGUoIERhdGEgPT4gXCVSZXN1bHRQcm90b2NvbCApOwoKICAgICMgb3V0Ym91bmQgbG9nCiAgICBpZiAoICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyktPkdldCgnaVBob25lOjpEZWJ1Z0xvZycpICkgewoKICAgICAgICAkU2VsZi0+X0xvZygKICAgICAgICAgICAgRGlyZWN0aW9uID0+ICdPdXRib3VuZCcsCiAgICAgICAgICAgIE1lc3NhZ2UgICA9PiAkSlNPTlJlc3VsdCwKICAgICAgICApOwogICAgfQoKICAgIHJldHVybiAkSlNPTlJlc3VsdDsKfQoKPWl0ZW0gX0xvZygpCgp3cml0ZXMgdG8gYSBkZWZpbmVkIGxvZyBmaWxlCgogICAgJEludGVyZmFjZUFnZW50LT5fTG9nKAogICAgICAgIERpcmVjdGlvbiA9PiAnSW5ib3VuZCcsICAgICAgICMgb3IgT3V0Ym91bmQKICAgICAgICBNZXNzYWdlICAgPT4gJ1NvbWUgTWVzc2FnZScsCiAgICB9OwoKPWN1dAoKc3ViIF9Mb2cgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICBteSAkRkg7CgogICAgIyBvcGVuIGxvZyBmaWxlCiAgICBpZiAoICFvcGVuICRGSCwgJz4+JywgJFNlbGYtPntEZWJ1Z0xvZ0ZpbGV9ICkgeyAgICAjI25vIGNyaXRpYwoKICAgICAgICAjIHByaW50IGVycm9yIHNjcmVlbgogICAgICAgIHByaW50IFNUREVSUiAiXG4iOwogICAgICAgIHByaW50IFNUREVSUiAiID4+IENhbid0IHdyaXRlICRTZWxmLT57TG9nRmlsZX06ICQhIDw8XG4iOwogICAgICAgIHByaW50IFNUREVSUiAiXG4iOwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICAjIHdyaXRlIGxvZyBmaWxlCiAgICBwcmludCAkRkggJ1snIC4gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlRpbWUnKS0+Q3VycmVudFRpbWVzdGFtcCgpIC4gJ10nOwogICAgcHJpbnQgJEZIICJbRGVidWddIFskUGFyYW17RGlyZWN0aW9ufV0gJFBhcmFte01lc3NhZ2V9XG4iOwoKICAgICMgY2xvc2UgZmlsZSBoYW5kbGUKICAgIGNsb3NlICRGSDsKCiAgICByZXR1cm4gMTsKfQoKMTsKCj1iYWNrCgo9aGVhZDEgVEVSTVMgQU5EIENPTkRJVElPTlMKClRoaXMgc29mdHdhcmUgaXMgcGFydCBvZiB0aGUgT1RSUyBwcm9qZWN0IChMPGh0dHBzOi8vb3Rycy5vcmcvPikuCgpUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQp0aGUgZW5jbG9zZWQgZmlsZSBDT1BZSU5HIGZvciBsaWNlbnNlIGluZm9ybWF0aW9uIChHUEwpLiBJZiB5b3UKZGlkIG5vdCByZWNlaXZlIHRoaXMgZmlsZSwgc2VlIEw8aHR0cHM6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy9ncGwtMy4wLnR4dD4uCgo9Y3V0Cg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE4IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgojIyBubyBjcml0aWMgKE1vZHVsZXM6OlJlcXVpcmVFeHBsaWNpdFBhY2thZ2UpCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKdXNlIHV0Zjg7CnVzZSB2YXJzIChxdygkU2VsZikpOwoKdXNlIEtlcm5lbDo6U3lzdGVtOjpWYXJpYWJsZUNoZWNrIHF3KElzQXJyYXlSZWZXaXRoRGF0YSBJc0hhc2hSZWZXaXRoRGF0YSBJc1N0cmluZ1dpdGhEYXRhKTsKCiMgZ2V0IGNvbmZpZyBvYmplY3QKbXkgJENvbmZpZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyk7CgojIGdldCByZW1vdGUgaG9zdCB3aXRoIHNvbWUgcHJlY2F1dGlvbnMgZm9yIGNlcnRhaW4gdW5pdCB0ZXN0IHN5c3RlbXMKbXkgJEhvc3Q7CgpteSAkRlFETiA9ICRDb25maWdPYmplY3QtPkdldCgnRlFETicpOwoKIyB0cnkgdG8gcmVzb2x2ZSBGUUROIGhvc3QKaWYgKCAkRlFETiBuZSAneW91cmhvc3QuZXhhbXBsZS5jb20nICYmIGdldGhvc3RieW5hbWUoJEZRRE4pICkgewogICAgJEhvc3QgPSAkRlFETjsKfQoKIyB0cnkgdG8gcmVzb2x2ZSBsb2NhbGhvc3QgaW5zdGVhZAppZiAoICEkSG9zdCAmJiBnZXRob3N0YnluYW1lKCdsb2NhbGhvc3QnKSApIHsKICAgICRIb3N0ID0gJ2xvY2FsaG9zdCc7Cn0KCiMgdXNlIGhhcmQtY29kZWQgbG9jYWxob3N0IElQIGFkZHJlc3MKaWYgKCAhJEhvc3QgKSB7CiAgICAkSG9zdCA9ICcxMjcuMC4wLjEnOwp9CgojIHByZXBhcmUgY29uZmlnCm15ICRVUkwgPQogICAgJENvbmZpZ09iamVjdC0+R2V0KCdIdHRwVHlwZScpCiAgICAuICc6Ly8nCiAgICAuICRIb3N0CiAgICAuICcvJwogICAgLiAkQ29uZmlnT2JqZWN0LT5HZXQoJ1NjcmlwdEFsaWFzJykKICAgIC4gJ2pzb24ucGwnOwoKbXkgJENhbGxKU09OQ0dJID0gc3ViIHsKICAgIG15ICVQYXJhbSA9IEBfOwoKICAgIG15ICVKU09OUGFyYW1zOwogICAgaWYgKCBJc0hhc2hSZWZXaXRoRGF0YSggJFBhcmFte0pTT05QYXJhbXN9ICkgKSB7CiAgICAgICAgJUpTT05QYXJhbXMgPSAleyAkUGFyYW17SlNPTlBhcmFtc30gfTsKICAgIH0KCiAgICAjIGNvcHkgSlNPTiBDR0kgaGFuZGxlcgogICAgbXkgJEpTT05VcmwgPSAkVVJMIC4gJz8nOwoKICAgIGZvciBteSAkSXRlbSAoIHNvcnQga2V5cyAlSlNPTlBhcmFtcyApIHsKICAgICAgICAkSlNPTlVybCAuPSAiJEl0ZW09JEpTT05QYXJhbXN7JEl0ZW19OyI7CiAgICB9CgogICAgbXkgJVJlc3BvbnNlID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OldlYlVzZXJBZ2VudCcpLT5SZXF1ZXN0KAogICAgICAgIFVSTCA9PiAkSlNPTlVybCwKICAgICk7CgogICAgJFNlbGYtPklzKAogICAgICAgICRSZXNwb25zZXtTdGF0dXN9LAogICAgICAgICcyMDAgT0snLAogICAgICAgICJKU09OIENHSSAtIFRlc3QgJFBhcmFte1Rlc3ROYW1lfSAtIHJlc3BvbnNlIGlzIDIwMCBPSyIsCiAgICApOwoKICAgIHJldHVybiAkUmVzcG9uc2V7Q29udGVudH07Cn07CgojZ2V0IGhlbHBlciBvYmplY3QKbXkgJEhlbHBlck9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpVbml0VGVzdDo6SGVscGVyJyk7CgojIGNyZWF0ZSB0ZXN0IHVzZXIKbXkgJFVzZXIgPSAkSGVscGVyT2JqZWN0LT5UZXN0VXNlckNyZWF0ZSgKICAgIEdyb3VwcyA9PiBbJ3VzZXJzJ10sCik7Cm15ICRQYXNzd29yZCA9ICRVc2VyOwoKbXkgJFJhbmRvbUlEID0gJEhlbHBlck9iamVjdC0+R2V0UmFuZG9tSUQoKTsKCm15IEBUZXN0cyA9ICgKICAgIHsKICAgICAgICBOYW1lICAgICAgID0+ICdFbXB0eSBwYXJhbXMnLAogICAgICAgIEpTT05QYXJhbXMgPT4ge30sCiAgICAgICAgU3VjY2VzcyAgICA9PiAwLAogICAgfSwKICAgIHsKICAgICAgICBOYW1lICAgICAgID0+ICdFbXB0eSB1c2VyJywKICAgICAgICBKU09OUGFyYW1zID0+IHsKICAgICAgICAgICAgVXNlciAgICAgPT4gJycsCiAgICAgICAgICAgIFBhc3N3b3JkID0+ICRQYXNzd29yZCwKICAgICAgICAgICAgT2JqZWN0ICAgPT4gJ0N1c3RvbU9iamVjdCcsCiAgICAgICAgICAgIE1ldGhvZCAgID0+ICdWZXJzaW9uR2V0JywKICAgICAgICB9LAogICAgICAgIFN1Y2Nlc3MgPT4gMCwKICAgIH0sCiAgICB7CiAgICAgICAgTmFtZSAgICAgICA9PiAnRW1wdHkgcGFzc3dvcmQnLAogICAgICAgIEpTT05QYXJhbXMgPT4gewogICAgICAgICAgICBVc2VyICAgICA9PiAkVXNlciwKICAgICAgICAgICAgUGFzc3dvcmQgPT4gJycsCiAgICAgICAgICAgIE9iamVjdCAgID0+ICdDdXN0b21PYmplY3QnLAogICAgICAgICAgICBNZXRob2QgICA9PiAnVmVyc2lvbkdldCcsCiAgICAgICAgfSwKICAgICAgICBTdWNjZXNzID0+IDAsCiAgICB9LAogICAgewogICAgICAgIE5hbWUgICAgICAgPT4gJ01pc3NpbmcgcGFzc3dvcmQnLAogICAgICAgIEpTT05QYXJhbXMgPT4gewogICAgICAgICAgICBVc2VyICAgPT4gJFVzZXIsCiAgICAgICAgICAgIE9iamVjdCA9PiAnQ3VzdG9tT2JqZWN0JywKICAgICAgICAgICAgTWV0aG9kID0+ICdWZXJzaW9uR2V0JywKICAgICAgICB9LAogICAgICAgIFN1Y2Nlc3MgPT4gMCwKICAgIH0sCiAgICB7CiAgICAgICAgTmFtZSAgICAgICA9PiAnTWlzc2luZyB1c2VyJywKICAgICAgICBKU09OUGFyYW1zID0+IHsKICAgICAgICAgICAgUGFzc3dvcmQgPT4gJFBhc3N3b3JkLAogICAgICAgICAgICBPYmplY3QgICA9PiAnQ3VzdG9tT2JqZWN0JywKICAgICAgICAgICAgTWV0aG9kICAgPT4gJ1ZlcnNpb25HZXQnLAogICAgICAgIH0sCiAgICAgICAgU3VjY2VzcyA9PiAwLAogICAgfSwKICAgIHsKICAgICAgICBOYW1lICAgICAgID0+ICdXcm9uZyB1c2VyJywKICAgICAgICBKU09OUGFyYW1zID0+IHsKICAgICAgICAgICAgVXNlciAgICAgPT4gJ05vdEV4aXN0aW5nJyAuICRSYW5kb21JRCwKICAgICAgICAgICAgUGFzc3dvcmQgPT4gJFBhc3N3b3JkLAogICAgICAgICAgICBPYmplY3QgICA9PiAnQ3VzdG9tT2JqZWN0JywKICAgICAgICAgICAgTWV0aG9kICAgPT4gJ1ZlcnNpb25HZXQnLAogICAgICAgIH0sCiAgICAgICAgU3VjY2VzcyA9PiAwLAogICAgfSwKICAgIHsKICAgICAgICBOYW1lICAgICAgID0+ICdXcm9uZyBwYXNzd29yZCcsCiAgICAgICAgSlNPTlBhcmFtcyA9PiB7CiAgICAgICAgICAgIFVzZXIgICAgID0+ICRVc2VyLAogICAgICAgICAgICBQYXNzd29yZCA9PiAnTm90RXhpc3RpbmcnIC4gJFJhbmRvbUlELAogICAgICAgICAgICBPYmplY3QgICA9PiAnQ3VzdG9tT2JqZWN0JywKICAgICAgICAgICAgTWV0aG9kICAgPT4gJ1ZlcnNpb25HZXQnLAogICAgICAgIH0sCiAgICAgICAgU3VjY2VzcyA9PiAwLAogICAgfSwKICAgIHsKICAgICAgICBOYW1lICAgICAgID0+ICdNaXNzaW5nIG9iamVjdCcsCiAgICAgICAgSlNPTlBhcmFtcyA9PiB7CiAgICAgICAgICAgIFVzZXIgICAgID0+ICRVc2VyLAogICAgICAgICAgICBQYXNzd29yZCA9PiAkUGFzc3dvcmQsCiAgICAgICAgICAgIE1ldGhvZCAgID0+ICdWZXJzaW9uR2V0JywKICAgICAgICB9LAogICAgICAgIFN1Y2Nlc3MgPT4gMCwKICAgIH0sCiAgICB7CiAgICAgICAgTmFtZSAgICAgICA9PiAnTWlzc2luZyBtZXRob2QnLAogICAgICAgIEpTT05QYXJhbXMgPT4gewogICAgICAgICAgICBVc2VyICAgICA9PiAkVXNlciwKICAgICAgICAgICAgUGFzc3dvcmQgPT4gJFBhc3N3b3JkLAogICAgICAgICAgICBPYmplY3QgICA9PiAnQ3VzdG9tT2JqZWN0JywKICAgICAgICB9LAogICAgICAgIFN1Y2Nlc3MgPT4gMCwKICAgIH0sCiAgICB7CiAgICAgICAgTmFtZSAgICAgICA9PiAnV3JvbmcgT2JqZWN0JywKICAgICAgICBKU09OUGFyYW1zID0+IHsKICAgICAgICAgICAgVXNlciAgICAgPT4gJFVzZXIsCiAgICAgICAgICAgIFBhc3N3b3JkID0+ICRQYXNzd29yZCwKICAgICAgICAgICAgT2JqZWN0ICAgPT4gJ015T2JqZWN0JywKICAgICAgICAgICAgTWV0aG9kICAgPT4gJ1RpY2tldEdldCcsCiAgICAgICAgfSwKICAgICAgICBTdWNjZXNzID0+IDAsCiAgICB9LAogICAgewogICAgICAgIE5hbWUgICAgICAgPT4gJ0JsYWNrbGlzdCBPYmplY3QnLAogICAgICAgIEpTT05QYXJhbXMgPT4gewogICAgICAgICAgICBVc2VyICAgICA9PiAkVXNlciwKICAgICAgICAgICAgUGFzc3dvcmQgPT4gJFBhc3N3b3JkLAogICAgICAgICAgICBPYmplY3QgICA9PiAnU2VydmljZU9iamVjdCcsCiAgICAgICAgICAgIE1ldGhvZCAgID0+ICdTZXJ2aWNlR2V0JywKICAgICAgICB9LAogICAgICAgIFN1Y2Nlc3MgPT4gMCwKICAgIH0sCiAgICB7CiAgICAgICAgTmFtZSAgICAgICA9PiAnV2hpdGVsaXN0IE9iamVjdCwgQmxhY2tsaXN0IE1ldGhvZCcsCiAgICAgICAgSlNPTlBhcmFtcyA9PiB7CiAgICAgICAgICAgIFVzZXIgICAgID0+ICRVc2VyLAogICAgICAgICAgICBQYXNzd29yZCA9PiAkUGFzc3dvcmQsCiAgICAgICAgICAgIE9iamVjdCAgID0+ICdUaWNrZXRPYmplY3QnLAogICAgICAgICAgICBNZXRob2QgICA9PiAnVGlja2V0R2V0JywKICAgICAgICB9LAogICAgICAgIFN1Y2Nlc3MgPT4gMCwKICAgIH0sCiAgICB7CiAgICAgICAgTmFtZSAgICAgICA9PiAnV3JvbmcgTWV0aG9kIEJsYWNrbGlzdGVkIERCT2JqZWN0JywKICAgICAgICBKU09OUGFyYW1zID0+IHsKICAgICAgICAgICAgVXNlciAgICAgPT4gJFVzZXIsCiAgICAgICAgICAgIFBhc3N3b3JkID0+ICRQYXNzd29yZCwKICAgICAgICAgICAgT2JqZWN0ICAgPT4gJ0RCT2JqZWN0JywKICAgICAgICAgICAgTWV0aG9kICAgPT4gJ05vdEV4aXN0ZW50R2V0JywKICAgICAgICB9LAogICAgICAgIFN1Y2Nlc3MgPT4gMCwKICAgIH0sCiAgICB7CiAgICAgICAgTmFtZSAgICAgICA9PiAnQmxhY2tsaXN0ZWQgREJPYmplY3QnLAogICAgICAgIEpTT05QYXJhbXMgPT4gewogICAgICAgICAgICBVc2VyICAgICA9PiAkVXNlciwKICAgICAgICAgICAgUGFzc3dvcmQgPT4gJFBhc3N3b3JkLAogICAgICAgICAgICBPYmplY3QgICA9PiAnREJPYmplY3QnLAogICAgICAgICAgICBNZXRob2QgICA9PiAnRG8nLAogICAgICAgIH0sCiAgICAgICAgU3VjY2VzcyA9PiAwLAogICAgfSwKICAgIHsKICAgICAgICBOYW1lICAgICAgID0+ICdCbGFja2xpc3RlZCBTeXNDb25maWdPYmplY3QnLAogICAgICAgIEpTT05QYXJhbXMgPT4gewogICAgICAgICAgICBVc2VyICAgICA9PiAkVXNlciwKICAgICAgICAgICAgUGFzc3dvcmQgPT4gJFBhc3N3b3JkLAogICAgICAgICAgICBPYmplY3QgICA9PiAnU3lzQ29uZmlnT2JqZWN0JywKICAgICAgICAgICAgTWV0aG9kICAgPT4gJ0dldCcsCiAgICAgICAgfSwKICAgICAgICBTdWNjZXNzID0+IDAsCiAgICB9LAogICAgewogICAgICAgIE5hbWUgICAgICAgPT4gJ0JsYWNrbGlzdGVkIExvZ09iamVjdCcsCiAgICAgICAgSlNPTlBhcmFtcyA9PiB7CiAgICAgICAgICAgIFVzZXIgICAgID0+ICRVc2VyLAogICAgICAgICAgICBQYXNzd29yZCA9PiAkUGFzc3dvcmQsCiAgICAgICAgICAgIE9iamVjdCAgID0+ICdMb2dPYmplY3QnLAogICAgICAgICAgICBNZXRob2QgICA9PiAnTG9nJywKICAgICAgICB9LAogICAgICAgIFN1Y2Nlc3MgPT4gMCwKICAgIH0sCiAgICB7CiAgICAgICAgTmFtZSAgICAgICA9PiAnV3JvbmcgTWV0aG9kIEN1c3RvbU9iamVjdCcsCiAgICAgICAgSlNPTlBhcmFtcyA9PiB7CiAgICAgICAgICAgIFVzZXIgICAgID0+ICRVc2VyLAogICAgICAgICAgICBQYXNzd29yZCA9PiAkUGFzc3dvcmQsCiAgICAgICAgICAgIE9iamVjdCAgID0+ICdDdXN0b21PYmplY3QnLAogICAgICAgICAgICBNZXRob2QgICA9PiAnTm90RXhpc3RlbnRHZXQnLAogICAgICAgIH0sCiAgICAgICAgU3VjY2VzcyA9PiAwLAogICAgfSwKICAgIHsKICAgICAgICBOYW1lICAgICAgID0+ICdNaXNzaW5nIFBhcmFtZXRlcnMgQ3VzdG9tT2JqZWN0JywKICAgICAgICBKU09OUGFyYW1zID0+IHsKICAgICAgICAgICAgVXNlciAgICAgPT4gJFVzZXIsCiAgICAgICAgICAgIFBhc3N3b3JkID0+ICRQYXNzd29yZCwKICAgICAgICAgICAgT2JqZWN0ICAgPT4gJ0N1c3RvbU9iamVjdCcsCiAgICAgICAgICAgIE1ldGhvZCAgID0+ICdDdXN0b21lcklER2V0JywKICAgICAgICB9LAogICAgICAgIFN1Y2Nlc3MgPT4gMCwKICAgIH0sCiAgICB7CiAgICAgICAgTmFtZSAgICAgICA9PiAnQ29ycmVjdCAoV2l0aG91dCBQYXJhbWV0ZXJzKSBDdXN0b21PYmplY3QnLAogICAgICAgIEpTT05QYXJhbXMgPT4gewogICAgICAgICAgICBVc2VyICAgICA9PiAkVXNlciwKICAgICAgICAgICAgUGFzc3dvcmQgPT4gJFBhc3N3b3JkLAogICAgICAgICAgICBPYmplY3QgICA9PiAnQ3VzdG9tT2JqZWN0JywKICAgICAgICAgICAgTWV0aG9kICAgPT4gJ1ZlcnNpb25HZXQnLAogICAgICAgIH0sCiAgICAgICAgU3VjY2VzcyA9PiAxLAogICAgfSwKCik7CgojIGdldCBKU09OIG9iamVjdApteSAkSlNPTk9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpKU09OJyk7Cgpmb3IgbXkgJFRlc3QgKEBUZXN0cykgewogICAgbXkgJEpTT05SZXNwb25zZSA9ICRDYWxsSlNPTkNHSS0+KAogICAgICAgIFRlc3ROYW1lICAgPT4gJFRlc3QtPntOYW1lfSwKICAgICAgICBKU09OUGFyYW1zID0+ICRUZXN0LT57SlNPTlBhcmFtc30sCiAgICApOwoKICAgIG15ICRSZXNwb25zZSA9ICRKU09OT2JqZWN0LT5EZWNvZGUoIERhdGEgPT4gJHskSlNPTlJlc3BvbnNlfSApOwoKICAgICRTZWxmLT5JcygKICAgICAgICByZWYgJFJlc3BvbnNlLAogICAgICAgICdIQVNIJywKICAgICAgICAiSlNPTiBDR0kgLSBUZXN0ICRUZXN0LT57TmFtZX0gLSBkZWNvZGVkIHJlc3BvbnNlIGlzIGEgSGFzaCBSZWZlcmVuY2UiLAogICAgKTsKCiAgICBpZiAoICRUZXN0LT57U3VjY2Vzc30gKSB7CgogICAgfQogICAgZWxzZSB7CiAgICAgICAgJFNlbGYtPklzKAogICAgICAgICAgICAkUmVzcG9uc2UtPntSZXN1bHR9LAogICAgICAgICAgICAnZmFpbGVkJywKICAgICAgICAgICAgIkpTT04gQ0dJIC0gVGVzdCAkVGVzdC0+e05hbWV9IC0gZGVjb2RlZCByZXNwb25zZSByZXN1bHQgaXMgZmFsc2UiLAogICAgICAgICk7CiAgICAgICAgJFNlbGYtPklzTm90KAogICAgICAgICAgICAkUmVzcG9uc2UtPntNZXNzYWdlfSwKICAgICAgICAgICAgJycsCiAgICAgICAgICAgICJKU09OIENHSSAtIFRlc3QgJFRlc3QtPntOYW1lfSAtIGRlY29kZWQgcmVzcG9uc2UgbWVzc2FnZSBpcyBub3QgZW1wdHkiLAogICAgICAgICk7CiAgICB9Cn0KMTsK
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE4IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgojIyBubyBjcml0aWMgKE1vZHVsZXM6OlJlcXVpcmVFeHBsaWNpdFBhY2thZ2UpCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKdXNlIHV0Zjg7CnVzZSB2YXJzIChxdygkU2VsZikpOwoKIyBwcmV2ZW50IHVzZWQgb25seSBvbmNlIHdhcm5pbmcKdXNlIEtlcm5lbDo6U3lzdGVtOjpPYmplY3RNYW5hZ2VyOwoKdXNlIEtlcm5lbDo6U3lzdGVtOjpWYXJpYWJsZUNoZWNrIHF3KDphbGwpOwoKIyB0aGVyZXMgaXMgbm90IHJlYWxseSBuZWVkZWQgdG8gYWRkIHRoZSBkeW5hbWljIGZpZWxkcyBmb3IgdGhpcyB0ZXN0LCB3ZSBjYW4gZGVmaW5lIGEgc3RhdGljCiMgc2V0IG9mIGNvbmZpZ3VyYXRpb25zCm15ICVEeW5hbWljRmllbGRDb25maWdzID0gKAogICAgVGV4dCA9PiB7CiAgICAgICAgSUQgICAgICAgICAgICA9PiAxMjMsCiAgICAgICAgSW50ZXJuYWxGaWVsZCA9PiAwLAogICAgICAgIE5hbWUgICAgICAgICAgPT4gJ1RleHRGaWVsZCcsCiAgICAgICAgTGFiZWwgICAgICAgICA9PiAnVGV4dEZpZWxkJywKICAgICAgICBGaWVsZE9yZGVyICAgID0+IDEyMywKICAgICAgICBGaWVsZFR5cGUgICAgID0+ICdUZXh0JywKICAgICAgICBPYmplY3RUeXBlICAgID0+ICdUaWNrZXQnLAogICAgICAgIENvbmZpZyAgICAgICAgPT4gewogICAgICAgICAgICBEZWZhdWx0VmFsdWUgPT4gJycsCiAgICAgICAgICAgIExpbmsgICAgICAgICA9PiAnJywKICAgICAgICB9LAogICAgICAgIFZhbGlkSUQgICAgPT4gMSwKICAgICAgICBDcmVhdGVUaW1lID0+ICcyMDExLTAyLTA4IDE1OjA4OjAwJywKICAgICAgICBDaGFuZ2VUaW1lID0+ICcyMDExLTA2LTExIDE3OjIyOjAwJywKICAgIH0sCiAgICBUZXh0QXJlYSA9PiB7CiAgICAgICAgSUQgICAgICAgICAgICA9PiAxMjMsCiAgICAgICAgSW50ZXJuYWxGaWVsZCA9PiAwLAogICAgICAgIE5hbWUgICAgICAgICAgPT4gJ1RleHRBcmVhRmllbGQnLAogICAgICAgIExhYmVsICAgICAgICAgPT4gJ1RleHRBcmVhRmllbGQnLAogICAgICAgIEZpZWxkT3JkZXIgICAgPT4gMTIzLAogICAgICAgIEZpZWxkVHlwZSAgICAgPT4gJ1RleHRBcmVhJywKICAgICAgICBPYmplY3RUeXBlICAgID0+ICdUaWNrZXQnLAogICAgICAgIENvbmZpZyAgICAgICAgPT4gewogICAgICAgICAgICBEZWZhdWx0VmFsdWUgPT4gJycsCiAgICAgICAgICAgIFJvd3MgICAgICAgICA9PiAnJywKICAgICAgICAgICAgQ29scyAgICAgICAgID0+ICcnLAogICAgICAgIH0sCiAgICAgICAgVmFsaWRJRCAgICA9PiAxLAogICAgICAgIENyZWF0ZVRpbWUgPT4gJzIwMTEtMDItMDggMTU6MDg6MDAnLAogICAgICAgIENoYW5nZVRpbWUgPT4gJzIwMTEtMDYtMTEgMTc6MjI6MDAnLAogICAgfSwKICAgIENoZWNrYm94ID0+IHsKICAgICAgICBJRCAgICAgICAgICAgID0+IDEyMywKICAgICAgICBJbnRlcm5hbEZpZWxkID0+IDAsCiAgICAgICAgTmFtZSAgICAgICAgICA9PiAnQ2hlY2tib3hGaWVsZCcsCiAgICAgICAgTGFiZWwgICAgICAgICA9PiAnQ2hlY2tib3hGaWVsZCcsCiAgICAgICAgRmllbGRPcmRlciAgICA9PiAxMjMsCiAgICAgICAgRmllbGRUeXBlICAgICA9PiAnQ2hlY2tib3gnLAogICAgICAgIE9iamVjdFR5cGUgICAgPT4gJ1RpY2tldCcsCiAgICAgICAgQ29uZmlnICAgICAgICA9PiB7CiAgICAgICAgICAgIERlZmF1bHRWYWx1ZSA9PiAnJywKICAgICAgICB9LAogICAgICAgIFZhbGlkSUQgICAgPT4gMSwKICAgICAgICBDcmVhdGVUaW1lID0+ICcyMDExLTAyLTA4IDE1OjA4OjAwJywKICAgICAgICBDaGFuZ2VUaW1lID0+ICcyMDExLTA2LTExIDE3OjIyOjAwJywKICAgIH0sCiAgICBEcm9wZG93biA9PiB7CiAgICAgICAgSUQgICAgICAgICAgICA9PiAxMjMsCiAgICAgICAgSW50ZXJuYWxGaWVsZCA9PiAwLAogICAgICAgIE5hbWUgICAgICAgICAgPT4gJ0Ryb3Bkb3duRmllbGQnLAogICAgICAgIExhYmVsICAgICAgICAgPT4gJ0Ryb3Bkb3duRmllbGQnLAogICAgICAgIEZpZWxkT3JkZXIgICAgPT4gMTIzLAogICAgICAgIEZpZWxkVHlwZSAgICAgPT4gJ0Ryb3Bkb3duJywKICAgICAgICBPYmplY3RUeXBlICAgID0+ICdUaWNrZXQnLAogICAgICAgIENvbmZpZyAgICAgICAgPT4gewogICAgICAgICAgICBEZWZhdWx0VmFsdWUgICAgICAgPT4gJycsCiAgICAgICAgICAgIExpbmsgICAgICAgICAgICAgICA9PiAnJywKICAgICAgICAgICAgUG9zc2libGVOb25lICAgICAgID0+ICcnLAogICAgICAgICAgICBUcmFuc2xhdGFibGVWYWx1ZXMgPT4gJycsCiAgICAgICAgICAgIFBvc3NpYmxlVmFsdWVzICAgICA9PiB7CiAgICAgICAgICAgICAgICBBID0+ICdBJywKICAgICAgICAgICAgICAgIEIgPT4gJ0InLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgVmFsaWRJRCAgICA9PiAxLAogICAgICAgIENyZWF0ZVRpbWUgPT4gJzIwMTEtMDItMDggMTU6MDg6MDAnLAogICAgICAgIENoYW5nZVRpbWUgPT4gJzIwMTEtMDYtMTEgMTc6MjI6MDAnLAogICAgfSwKICAgIE11bHRpc2VsZWN0ID0+IHsKICAgICAgICBJRCAgICAgICAgICAgID0+IDEyMywKICAgICAgICBJbnRlcm5hbEZpZWxkID0+IDAsCiAgICAgICAgTmFtZSAgICAgICAgICA9PiAnTXVsdGlzZWxlY3RGaWVsZCcsCiAgICAgICAgTGFiZWwgICAgICAgICA9PiAnTXVsdGlzZWxlY3RGaWVsZCcsCiAgICAgICAgRmllbGRPcmRlciAgICA9PiAxMjMsCiAgICAgICAgRmllbGRUeXBlICAgICA9PiAnTXVsdGlzZWxlY3QnLAogICAgICAgIE9iamVjdFR5cGUgICAgPT4gJ1RpY2tldCcsCiAgICAgICAgQ29uZmlnICAgICAgICA9PiB7CiAgICAgICAgICAgIERlZmF1bHRWYWx1ZSAgICAgICA9PiAnJywKICAgICAgICAgICAgUG9zc2libGVOb25lICAgICAgID0+ICcnLAogICAgICAgICAgICBUcmFuc2xhdGFibGVWYWx1ZXMgPT4gJycsCiAgICAgICAgICAgIFBvc3NpYmxlVmFsdWVzICAgICA9PiB7CiAgICAgICAgICAgICAgICBBID0+ICdBJywKICAgICAgICAgICAgICAgIEIgPT4gJ0InLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgVmFsaWRJRCAgICA9PiAxLAogICAgICAgIENyZWF0ZVRpbWUgPT4gJzIwMTEtMDItMDggMTU6MDg6MDAnLAogICAgICAgIENoYW5nZVRpbWUgPT4gJzIwMTEtMDYtMTEgMTc6MjI6MDAnLAogICAgfSwKICAgIERhdGVUaW1lID0+IHsKICAgICAgICBJRCAgICAgICAgICAgID0+IDEyMywKICAgICAgICBJbnRlcm5hbEZpZWxkID0+IDAsCiAgICAgICAgTmFtZSAgICAgICAgICA9PiAnRGF0ZVRpbWVGaWVsZCcsCiAgICAgICAgTGFiZWwgICAgICAgICA9PiAnRGF0ZVRpbWVGaWVsZCcsCiAgICAgICAgRmllbGRPcmRlciAgICA9PiAxMjMsCiAgICAgICAgRmllbGRUeXBlICAgICA9PiAnRGF0ZVRpbWUnLAogICAgICAgIE9iamVjdFR5cGUgICAgPT4gJ1RpY2tldCcsCiAgICAgICAgQ29uZmlnICAgICAgICA9PiB7CiAgICAgICAgICAgIERlZmF1bHRWYWx1ZSAgPT4gJycsCiAgICAgICAgICAgIExpbmsgICAgICAgICAgPT4gJycsCiAgICAgICAgICAgIFllYXJzUGVyaW9kICAgPT4gJycsCiAgICAgICAgICAgIFllYXJzSW5GdXR1cmUgPT4gJycsCiAgICAgICAgICAgIFllYXJzSW5QYXN0ICAgPT4gJycsCiAgICAgICAgfSwKICAgICAgICBWYWxpZElEICAgID0+IDEsCiAgICAgICAgQ3JlYXRlVGltZSA9PiAnMjAxMS0wMi0wOCAxNTowODowMCcsCiAgICAgICAgQ2hhbmdlVGltZSA9PiAnMjAxMS0wNi0xMSAxNzoyMjowMCcsCiAgICB9LAogICAgRGF0ZSA9PiB7CiAgICAgICAgSUQgICAgICAgICAgICA9PiAxMjMsCiAgICAgICAgSW50ZXJuYWxGaWVsZCA9PiAwLAogICAgICAgIE5hbWUgICAgICAgICAgPT4gJ0RhdGVGaWVsZCcsCiAgICAgICAgTGFiZWwgICAgICAgICA9PiAnRGF0ZUZpZWxkJywKICAgICAgICBGaWVsZE9yZGVyICAgID0+IDEyMywKICAgICAgICBGaWVsZFR5cGUgICAgID0+ICdEYXRlJywKICAgICAgICBPYmplY3RUeXBlICAgID0+ICdUaWNrZXQnLAogICAgICAgIENvbmZpZyAgICAgICAgPT4gewogICAgICAgICAgICBEZWZhdWx0VmFsdWUgID0+ICcnLAogICAgICAgICAgICBMaW5rICAgICAgICAgID0+ICcnLAogICAgICAgICAgICBZZWFyc1BlcmlvZCAgID0+ICcnLAogICAgICAgICAgICBZZWFyc0luRnV0dXJlID0+ICcnLAogICAgICAgICAgICBZZWFyc0luUGFzdCAgID0+ICcnLAogICAgICAgIH0sCiAgICAgICAgVmFsaWRJRCAgICA9PiAxLAogICAgICAgIENyZWF0ZVRpbWUgPT4gJzIwMTEtMDItMDggMTU6MDg6MDAnLAogICAgICAgIENoYW5nZVRpbWUgPT4gJzIwMTEtMDYtMTEgMTc6MjI6MDAnLAogICAgfSwKKTsKCiMgZGVmaW5lIHRlc3RzCm15IEBUZXN0cyA9ICgKICAgIHsKICAgICAgICBOYW1lICAgPT4gJ0R5bmFtaWNGaWVsZCBUZXh0JywKICAgICAgICBDb25maWcgPT4gewogICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgPT4gJER5bmFtaWNGaWVsZENvbmZpZ3N7VGV4dH0sCiAgICAgICAgfSwKICAgICAgICBFeHBlY3RlZFJlc3VsdHMgPT4gewogICAgICAgICAgICAnSXNJUGhvbmVDYXBhYmxlJyA9PiAxLAogICAgICAgIH0sCiAgICB9LAogICAgewogICAgICAgIE5hbWUgICA9PiAnRHluYW1pY0ZpZWxkIFRleHQgQXJlYScsCiAgICAgICAgQ29uZmlnID0+IHsKICAgICAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnID0+ICREeW5hbWljRmllbGRDb25maWdze1RleHRBcmVhfSwKICAgICAgICB9LAogICAgICAgIEV4cGVjdGVkUmVzdWx0cyA9PiB7CiAgICAgICAgICAgICdJc0lQaG9uZUNhcGFibGUnID0+IDEsCiAgICAgICAgfSwKICAgIH0sCiAgICB7CiAgICAgICAgTmFtZSAgID0+ICdEeW5hbWljRmllbGQgQ2hlY2tib3gnLAogICAgICAgIENvbmZpZyA9PiB7CiAgICAgICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyA9PiAkRHluYW1pY0ZpZWxkQ29uZmlnc3tDaGVja2JveH0sCiAgICAgICAgfSwKICAgICAgICBFeHBlY3RlZFJlc3VsdHMgPT4gewogICAgICAgICAgICAnSXNJUGhvbmVDYXBhYmxlJyA9PiAxLAogICAgICAgIH0sCiAgICB9LAogICAgewogICAgICAgIE5hbWUgICA9PiAnRHluYW1pY0ZpZWxkIERyb3Bkb3duJywKICAgICAgICBDb25maWcgPT4gewogICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgPT4gJER5bmFtaWNGaWVsZENvbmZpZ3N7RHJvcGRvd259LAogICAgICAgIH0sCiAgICAgICAgRXhwZWN0ZWRSZXN1bHRzID0+IHsKICAgICAgICAgICAgJ0lzSVBob25lQ2FwYWJsZScgPT4gMSwKICAgICAgICB9LAogICAgfSwKICAgIHsKICAgICAgICBOYW1lICAgPT4gJ0R5bmFtaWNGaWVsZCBNdWx0aXNlbGVjdCcsCiAgICAgICAgQ29uZmlnID0+IHsKICAgICAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnID0+ICREeW5hbWljRmllbGRDb25maWdze011bHRpc2VsZWN0fSwKICAgICAgICB9LAogICAgICAgIEV4cGVjdGVkUmVzdWx0cyA9PiB7CiAgICAgICAgICAgICdJc0lQaG9uZUNhcGFibGUnID0+IDAsCiAgICAgICAgfSwKICAgIH0sCiAgICB7CiAgICAgICAgTmFtZSAgID0+ICdEeW5hbWljRmllbGQgRGF0ZVRpbWUnLAogICAgICAgIENvbmZpZyA9PiB7CiAgICAgICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyA9PiAkRHluYW1pY0ZpZWxkQ29uZmlnc3tEYXRlVGltZX0sCiAgICAgICAgfSwKICAgICAgICBFeHBlY3RlZFJlc3VsdHMgPT4gewogICAgICAgICAgICAnSXNJUGhvbmVDYXBhYmxlJyA9PiAxLAogICAgICAgIH0sCiAgICB9LAogICAgewogICAgICAgIE5hbWUgICA9PiAnRHluYW1pY0ZpZWxkIERhdGUnLAogICAgICAgIENvbmZpZyA9PiB7CiAgICAgICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyA9PiAkRHluYW1pY0ZpZWxkQ29uZmlnc3tEYXRlfSwKICAgICAgICB9LAogICAgICAgIEV4cGVjdGVkUmVzdWx0cyA9PiB7CiAgICAgICAgICAgICdJc0lQaG9uZUNhcGFibGUnID0+IDEsCiAgICAgICAgfSwKICAgIH0sCik7CgpteSAkREZCYWNrZW5kT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkR5bmFtaWNGaWVsZDo6QmFja2VuZCcpOwoKIyBleGVjdXRlIHRlc3RzCmZvciBteSAkVGVzdCAoQFRlc3RzKSB7CgogICAgIyBzZXQga25vd24gYmVoYXZpb3JzCiAgICBCRUhBVklPUjoKICAgIGZvciBteSAkQmVoYXZpb3IgKHF3KElzSVBob25lQ2FwYWJsZSkpIHsKCiAgICAgICAgIyB0byBzdG9yZSB0aGUgY29uZmlnIChhbHNvIGZvciBlYWNoIGJlaGF2aW9yKQogICAgICAgIG15ICVDb25maWc7CgogICAgICAgICMgYWRkIHRoZSBiZWhhdmlvciBpZiB0aGVyZSBpcyBhIGNvbmZpZyB3aGVyZSB0byBhZGQgaXQuCiAgICAgICAgaWYgKCBJc0hhc2hSZWZXaXRoRGF0YSggJFRlc3QtPntDb25maWd9ICkgKSB7CiAgICAgICAgICAgICVDb25maWcgPSAoCiAgICAgICAgICAgICAgICAleyAkVGVzdC0+e0NvbmZpZ30gfSwKICAgICAgICAgICAgICAgIEJlaGF2aW9yID0+ICRCZWhhdmlvciwKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgICMgY2FsbCBIYXNCZWhhdmlvciBmb3IgZWFjaCB0ZXN0IGZvciBlYWNoIGtub3duIGJlaGF2aW9yCiAgICAgICAgbXkgJFN1Y2Nlc3MgPSAkREZCYWNrZW5kT2JqZWN0LT5IYXNCZWhhdmlvciglQ29uZmlnKTsKCiAgICAgICAgIyBpZiB0aGUgdGVzdCBpcyBhIHN1Y2Nlc3MgdGhlbiBjaGVjayB0aGUgZXhwZWN0ZWQgcmVzdWx0cyB3aXRoIHRydWUKICAgICAgICBpZiAoJFN1Y2Nlc3MpIHsKICAgICAgICAgICAgJFNlbGYtPlRydWUoCiAgICAgICAgICAgICAgICAkVGVzdC0+e0V4cGVjdGVkUmVzdWx0c30tPnskQmVoYXZpb3J9LAogICAgICAgICAgICAgICAgIiRUZXN0LT57TmFtZX0gSGFzQmVoYXZpb3IoKSBmb3IgJEJlaGF2aW9yIGV4ZWN1dGVkIHdpdGggVHJ1ZSIsCiAgICAgICAgICAgICk7CiAgICAgICAgfQoKICAgICAgICAjIG90aGVyd2lzZSBpZiB0aGVyZSBpcyBhIER5bmFtaWNGaWVsZCBjb25maWcgY2hlY2sgdGhlIGV4cGVjdGVkIHJlc3VsdHMgd2l0aCBmYWxzZQogICAgICAgIGVsc2UgewogICAgICAgICAgICBpZiAoIElzSGFzaFJlZldpdGhEYXRhKCAkVGVzdC0+e0NvbmZpZ30tPntEeW5hbWljRmllbGRDb25maWd9ICkgKSB7CiAgICAgICAgICAgICAgICAkU2VsZi0+RmFsc2UoCiAgICAgICAgICAgICAgICAgICAgJFRlc3QtPntFeHBlY3RlZFJlc3VsdHN9LT57JEJlaGF2aW9yfSwKICAgICAgICAgICAgICAgICAgICAiJFRlc3QtPntOYW1lfSBIYXNCZWhhdmlvcigpIGZvciAkQmVoYXZpb3IgZXhlY3V0ZWQgd2l0aCBGYWxzZSIsCiAgICAgICAgICAgICAgICApOwogICAgICAgICAgICB9CgogICAgICAgICAgICAjIGlmIHRoZXJlIGlzIG5vIER5bmFtaWNGaWVsZCBjb25maWcsIHRoZW4gaXQgc2hvdWxkIGZhaWwsIGRvbid0IG5lZWQgZnVydGhlciBjaGVja3MKICAgICAgICAgICAgZWxzZSB7CiAgICAgICAgICAgICAgICAkU2VsZi0+VHJ1ZSgKICAgICAgICAgICAgICAgICAgICAxLAogICAgICAgICAgICAgICAgICAgICIkVGVzdC0+e05hbWV9IEhhc0JlaGF2aW9yKCkgU2hvdWxkIG5vdCBydW4gb24gbWlzc2luZyBjb25maWd1cmF0aW9uIiwKICAgICAgICAgICAgICAgICk7CgogICAgICAgICAgICAgICAgIyBpZiB0aGUgdGVzdHMgc3VwcG9zZWQgdG8gZmFpbCBkdWUgdG8gbWlzc2luZyBlc3NlbnRpYWwgY29uZmlndXJhdGlvbiB0aGVyZSBpcyBubwogICAgICAgICAgICAgICAgIyBuZWVkIHRvIGtlZXAgdGVzdGluZyB3aXRoIG90aGVyIGJlaGF2aW9ycwogICAgICAgICAgICAgICAgbGFzdCBCRUhBVklPUjsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KfQoKIyB3ZSBkb24ndCBuZWVkIGFueSBjbGVhbnVwCjE7Cg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE4IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgojIyBubyBjcml0aWMgKE1vZHVsZXM6OlJlcXVpcmVFeHBsaWNpdFBhY2thZ2UpCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKdXNlIHV0Zjg7CnVzZSB2YXJzIChxdygkU2VsZikpOwoKdXNlIEtlcm5lbDo6TGFuZ3VhZ2U7CnVzZSBLZXJuZWw6OlN5c3RlbTo6VmFyaWFibGVDaGVjayBxdyg6YWxsKTsKCm15ICRFbkxhbmd1YWdlT2JqZWN0ID0gS2VybmVsOjpMYW5ndWFnZS0+bmV3KAogICAgVXNlckxhbmd1YWdlID0+ICdlbicsCik7Cm15ICRFc0xhbmd1YWdlT2JqZWN0ID0gS2VybmVsOjpMYW5ndWFnZS0+bmV3KAogICAgVXNlckxhbmd1YWdlID0+ICdlcycsCik7CgojIHRoZXJlcyBpcyBub3QgcmVhbGx5IG5lZWRlZCB0byBhZGQgdGhlIGR5bmFtaWMgZmllbGRzIGZvciB0aGlzIHRlc3QsIHdlIGNhbiBkZWZpbmUgYSBzdGF0aWMKIyBzZXQgb2YgY29uZmlndXJhdGlvbnMKbXkgJUR5bmFtaWNGaWVsZENvbmZpZ3MgPSAoCiAgICBUZXh0ID0+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+ICdEeW5hbWljRmllbGQgVGV4dCBFTicsCiAgICAgICAgQ29uZmlnID0+IHsKICAgICAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnICAgPT4gJER5bmFtaWNGaWVsZENvbmZpZ3N7VGV4dH0sCiAgICAgICAgICAgIFZhbHVlICAgICAgICAgICAgICAgID0+ICdQcmlvcml0eScsCiAgICAgICAgICAgIE1hbmRhdG9yeSAgICAgICAgICAgID0+IDEsCiAgICAgICAgICAgIFVzZURlZmF1bHRWYWx1ZSAgICAgID0+IDAsCiAgICAgICAgICAgIE92ZXJyaWRlUG9zc2libGVOb25lID0+IHVuZGVmLAogICAgICAgICAgICBMYW5ndWFnZU9iamVjdCAgICAgICA9PiAkRW5MYW5ndWFnZU9iamVjdAogICAgICAgIH0sCiAgICAgICAgRXhwZWN0ZWRSZXN1bHRzID0+IHsKICAgICAgICAgICAgTmFtZSAgICAgID0+ICdEeW5hbWljRmllbGRfVGV4dEZpZWxkJywKICAgICAgICAgICAgVGl0bGUgICAgID0+ICdPd25lcicsCiAgICAgICAgICAgIERhdGF0eXBlICA9PiAnVGV4dCcsCiAgICAgICAgICAgIFZpZXd0eXBlICA9PiAnSW5wdXQnLAogICAgICAgICAgICBNaW4gICAgICAgPT4gMSwKICAgICAgICAgICAgTWF4ICAgICAgID0+IDIwMCwKICAgICAgICAgICAgTWFuZGF0b3J5ID0+IDEsCiAgICAgICAgICAgIERlZmF1bHQgICA9PiAnUHJpb3JpdHknLAogICAgICAgIH0sCiAgICB9LAogICAgewogICAgICAgIE5hbWUgICA9PiAnRHluYW1pY0ZpZWxkIFRleHQgRVMnLAogICAgICAgIENvbmZpZyA9PiB7CiAgICAgICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyAgID0+ICREeW5hbWljRmllbGRDb25maWdze1RleHR9LAogICAgICAgICAgICBWYWx1ZSAgICAgICAgICAgICAgICA9PiAnUHJpb3JpdHknLAogICAgICAgICAgICBNYW5kYXRvcnkgICAgICAgICAgICA9PiAxLAogICAgICAgICAgICBVc2VEZWZhdWx0VmFsdWUgICAgICA9PiAwLAogICAgICAgICAgICBPdmVycmlkZVBvc3NpYmxlTm9uZSA9PiB1bmRlZiwKICAgICAgICAgICAgTGFuZ3VhZ2VPYmplY3QgICAgICAgPT4gJEVzTGFuZ3VhZ2VPYmplY3QKICAgICAgICB9LAogICAgICAgIEV4cGVjdGVkUmVzdWx0cyA9PiB7CiAgICAgICAgICAgIE5hbWUgICAgICA9PiAnRHluYW1pY0ZpZWxkX1RleHRGaWVsZCcsCiAgICAgICAgICAgIFRpdGxlICAgICA9PiAnUHJvcGlldGFyaW8nLAogICAgICAgICAgICBEYXRhdHlwZSAgPT4gJ1RleHQnLAogICAgICAgICAgICBWaWV3dHlwZSAgPT4gJ0lucHV0JywKICAgICAgICAgICAgTWluICAgICAgID0+IDEsCiAgICAgICAgICAgIE1heCAgICAgICA9PiAyMDAsCiAgICAgICAgICAgIE1hbmRhdG9yeSA9PiAxLAogICAgICAgICAgICBEZWZhdWx0ICAgPT4gJ1ByaW9yaXR5JywKICAgICAgICB9LAogICAgfSwKICAgIHsKICAgICAgICBOYW1lICAgPT4gJ0R5bmFtaWNGaWVsZCBUZXh0IEFyZWEgRU4nLAogICAgICAgIENvbmZpZyA9PiB7CiAgICAgICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyAgID0+ICREeW5hbWljRmllbGRDb25maWdze1RleHRBcmVhfSwKICAgICAgICAgICAgVmFsdWUgICAgICAgICAgICAgICAgPT4gJ1ByaW9yaXR5JywKICAgICAgICAgICAgTWFuZGF0b3J5ICAgICAgICAgICAgPT4gMCwKICAgICAgICAgICAgVXNlRGVmYXVsdFZhbHVlICAgICAgPT4gMCwKICAgICAgICAgICAgT3ZlcnJpZGVQb3NzaWJsZU5vbmUgPT4gdW5kZWYsCiAgICAgICAgICAgIExhbmd1YWdlT2JqZWN0ICAgICAgID0+ICRFbkxhbmd1YWdlT2JqZWN0CiAgICAgICAgfSwKICAgICAgICBFeHBlY3RlZFJlc3VsdHMgPT4gewogICAgICAgICAgICBOYW1lICAgICAgPT4gJ0R5bmFtaWNGaWVsZF9UZXh0QXJlYUZpZWxkJywKICAgICAgICAgICAgVGl0bGUgICAgID0+ICdPd25lcicsCiAgICAgICAgICAgIERhdGF0eXBlICA9PiAnVGV4dCcsCiAgICAgICAgICAgIFZpZXd0eXBlICA9PiAnVGV4dEFyZWEnLAogICAgICAgICAgICBNaW4gICAgICAgPT4gMSwKICAgICAgICAgICAgTWF4ICAgICAgID0+IDIwMDAwLAogICAgICAgICAgICBNYW5kYXRvcnkgPT4gMCwKICAgICAgICAgICAgRGVmYXVsdCAgID0+ICdQcmlvcml0eScsCiAgICAgICAgfSwKICAgIH0sCiAgICB7CiAgICAgICAgTmFtZSAgID0+ICdEeW5hbWljRmllbGQgVGV4dCBBcmVhIEVTJywKICAgICAgICBDb25maWcgPT4gewogICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgICA9PiAkRHluYW1pY0ZpZWxkQ29uZmlnc3tUZXh0QXJlYX0sCiAgICAgICAgICAgIFZhbHVlICAgICAgICAgICAgICAgID0+ICdQcmlvcml0eScsCiAgICAgICAgICAgIE1hbmRhdG9yeSAgICAgICAgICAgID0+IDAsCiAgICAgICAgICAgIFVzZURlZmF1bHRWYWx1ZSAgICAgID0+IDAsCiAgICAgICAgICAgIE92ZXJyaWRlUG9zc2libGVOb25lID0+IHVuZGVmLAogICAgICAgICAgICBMYW5ndWFnZU9iamVjdCAgICAgICA9PiAkRXNMYW5ndWFnZU9iamVjdAogICAgICAgIH0sCiAgICAgICAgRXhwZWN0ZWRSZXN1bHRzID0+IHsKICAgICAgICAgICAgTmFtZSAgICAgID0+ICdEeW5hbWljRmllbGRfVGV4dEFyZWFGaWVsZCcsCiAgICAgICAgICAgIFRpdGxlICAgICA9PiAnUHJvcGlldGFyaW8nLAogICAgICAgICAgICBEYXRhdHlwZSAgPT4gJ1RleHQnLAogICAgICAgICAgICBWaWV3dHlwZSAgPT4gJ1RleHRBcmVhJywKICAgICAgICAgICAgTWluICAgICAgID0+IDEsCiAgICAgICAgICAgIE1heCAgICAgICA9PiAyMDAwMCwKICAgICAgICAgICAgTWFuZGF0b3J5ID0+IDAsCiAgICAgICAgICAgIERlZmF1bHQgICA9PiAnUHJpb3JpdHknLAogICAgICAgIH0sCiAgICB9LAogICAgewogICAgICAgIE5hbWUgICA9PiAnRHluYW1pY0ZpZWxkIENoZWNrYm94IEVOJywKICAgICAgICBDb25maWcgPT4gewogICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgICA9PiAkRHluYW1pY0ZpZWxkQ29uZmlnc3tDaGVja2JveH0sCiAgICAgICAgICAgIFZhbHVlICAgICAgICAgICAgICAgID0+IDEsCiAgICAgICAgICAgIE1hbmRhdG9yeSAgICAgICAgICAgID0+IDAsCiAgICAgICAgICAgIFVzZURlZmF1bHRWYWx1ZSAgICAgID0+IDAsCiAgICAgICAgICAgIE92ZXJyaWRlUG9zc2libGVOb25lID0+IHVuZGVmLAogICAgICAgICAgICBMYW5ndWFnZU9iamVjdCAgICAgICA9PiAkRW5MYW5ndWFnZU9iamVjdAogICAgICAgIH0sCiAgICAgICAgRXhwZWN0ZWRSZXN1bHRzID0+IHsKICAgICAgICAgICAgTmFtZSAgICAgID0+ICdEeW5hbWljRmllbGRfQ2hlY2tib3hGaWVsZCcsCiAgICAgICAgICAgIFRpdGxlICAgICA9PiAnT3duZXInLAogICAgICAgICAgICBEYXRhdHlwZSAgPT4gJ1RleHQnLAogICAgICAgICAgICBWaWV3dHlwZSAgPT4gJ1BpY2tlcicsCiAgICAgICAgICAgIE1hbmRhdG9yeSA9PiAwLAogICAgICAgICAgICBPcHRpb25zICAgPT4gewogICAgICAgICAgICAgICAgMCA9PiAnVW5jaGVja2VkJywKICAgICAgICAgICAgICAgIDEgPT4gJ0NoZWNrZWQnLAogICAgICAgICAgICB9LAogICAgICAgICAgICBEZWZhdWx0ID0+IDEsCiAgICAgICAgfSwKICAgIH0sCiAgICB7CiAgICAgICAgTmFtZSAgID0+ICdEeW5hbWljRmllbGQgQ2hlY2tib3ggRVMnLAogICAgICAgIENvbmZpZyA9PiB7CiAgICAgICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyAgID0+ICREeW5hbWljRmllbGRDb25maWdze0NoZWNrYm94fSwKICAgICAgICAgICAgVmFsdWUgICAgICAgICAgICAgICAgPT4gMCwKICAgICAgICAgICAgTWFuZGF0b3J5ICAgICAgICAgICAgPT4gMSwKICAgICAgICAgICAgVXNlRGVmYXVsdFZhbHVlICAgICAgPT4gMSwKICAgICAgICAgICAgT3ZlcnJpZGVQb3NzaWJsZU5vbmUgPT4gdW5kZWYsCiAgICAgICAgICAgIExhbmd1YWdlT2JqZWN0ICAgICAgID0+ICRFc0xhbmd1YWdlT2JqZWN0CiAgICAgICAgfSwKICAgICAgICBFeHBlY3RlZFJlc3VsdHMgPT4gewogICAgICAgICAgICBOYW1lICAgICAgPT4gJ0R5bmFtaWNGaWVsZF9DaGVja2JveEZpZWxkJywKICAgICAgICAgICAgVGl0bGUgICAgID0+ICdQcm9waWV0YXJpbycsCiAgICAgICAgICAgIERhdGF0eXBlICA9PiAnVGV4dCcsCiAgICAgICAgICAgIFZpZXd0eXBlICA9PiAnUGlja2VyJywKICAgICAgICAgICAgTWFuZGF0b3J5ID0+IDEsCiAgICAgICAgICAgIE9wdGlvbnMgICA9PiB7CiAgICAgICAgICAgICAgICAwID0+ICdVbmNoZWNrZWQnLAogICAgICAgICAgICAgICAgMSA9PiAnQ2hlY2tlZCcsCiAgICAgICAgICAgIH0sCiAgICAgICAgICAgIERlZmF1bHQgPT4gMCwKICAgICAgICB9LAogICAgfSwKICAgIHsKICAgICAgICBOYW1lICAgPT4gJ0R5bmFtaWNGaWVsZCBEcm9wZG93biBFTicsCiAgICAgICAgQ29uZmlnID0+IHsKICAgICAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnICAgPT4gJER5bmFtaWNGaWVsZENvbmZpZ3N7RHJvcGRvd259LAogICAgICAgICAgICBWYWx1ZSAgICAgICAgICAgICAgICA9PiAyLAogICAgICAgICAgICBNYW5kYXRvcnkgICAgICAgICAgICA9PiAxLAogICAgICAgICAgICBVc2VEZWZhdWx0VmFsdWUgICAgICA9PiAxLAogICAgICAgICAgICBPdmVycmlkZVBvc3NpYmxlTm9uZSA9PiB1bmRlZiwKICAgICAgICAgICAgTGFuZ3VhZ2VPYmplY3QgICAgICAgPT4gJEVuTGFuZ3VhZ2VPYmplY3QKICAgICAgICB9LAogICAgICAgIEV4cGVjdGVkUmVzdWx0cyA9PiB7CiAgICAgICAgICAgIE5hbWUgICAgICA9PiAnRHluYW1pY0ZpZWxkX0Ryb3Bkb3duRmllbGQnLAogICAgICAgICAgICBUaXRsZSAgICAgPT4gJ093bmVyJywKICAgICAgICAgICAgRGF0YXR5cGUgID0+ICdUZXh0JywKICAgICAgICAgICAgVmlld3R5cGUgID0+ICdQaWNrZXInLAogICAgICAgICAgICBNYW5kYXRvcnkgPT4gMSwKICAgICAgICAgICAgT3B0aW9ucyAgID0+IHsKICAgICAgICAgICAgICAgIDEgPT4gJ1ByaW9yaXR5JywKICAgICAgICAgICAgICAgIDIgPT4gJ1N0YXRlJywKICAgICAgICAgICAgfSwKICAgICAgICAgICAgRGVmYXVsdCA9PiAyLAogICAgICAgIH0sCiAgICB9LAogICAgewogICAgICAgIE5hbWUgICA9PiAnRHluYW1pY0ZpZWxkIERyb3Bkb3duIEVTJywKICAgICAgICBDb25maWcgPT4gewogICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgICA9PiAkRHluYW1pY0ZpZWxkQ29uZmlnc3tEcm9wZG93bn0sCiAgICAgICAgICAgIFZhbHVlICAgICAgICAgICAgICAgID0+IDIsCiAgICAgICAgICAgIE1hbmRhdG9yeSAgICAgICAgICAgID0+IDEsCiAgICAgICAgICAgIFVzZURlZmF1bHRWYWx1ZSAgICAgID0+IDEsCiAgICAgICAgICAgIE92ZXJyaWRlUG9zc2libGVOb25lID0+IDEsCiAgICAgICAgICAgIExhbmd1YWdlT2JqZWN0ICAgICAgID0+ICRFc0xhbmd1YWdlT2JqZWN0CiAgICAgICAgfSwKICAgICAgICBFeHBlY3RlZFJlc3VsdHMgPT4gewogICAgICAgICAgICBOYW1lICAgICAgPT4gJ0R5bmFtaWNGaWVsZF9Ecm9wZG93bkZpZWxkJywKICAgICAgICAgICAgVGl0bGUgICAgID0+ICdQcm9waWV0YXJpbycsCiAgICAgICAgICAgIERhdGF0eXBlICA9PiAnVGV4dCcsCiAgICAgICAgICAgIFZpZXd0eXBlICA9PiAnUGlja2VyJywKICAgICAgICAgICAgTWFuZGF0b3J5ID0+IDEsCiAgICAgICAgICAgIE9wdGlvbnMgICA9PiB7CiAgICAgICAgICAgICAgICAnJyA9PiAnLScsCiAgICAgICAgICAgICAgICAxICA9PiAnUHJpb3JpZGFkJywKICAgICAgICAgICAgICAgIDIgID0+ICdFc3RhZG8nLAogICAgICAgICAgICB9LAogICAgICAgICAgICBEZWZhdWx0ID0+IDIsCiAgICAgICAgfSwKICAgIH0sCiAgICB7CiAgICAgICAgTmFtZSAgID0+ICdEeW5hbWljRmllbGQgTXVsdGlzZWxlY3QnLAogICAgICAgIENvbmZpZyA9PiB7CiAgICAgICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyAgID0+ICREeW5hbWljRmllbGRDb25maWdze011bHRpc2VsZWN0fSwKICAgICAgICAgICAgVmFsdWUgICAgICAgICAgICAgICAgPT4gMiwKICAgICAgICAgICAgTWFuZGF0b3J5ICAgICAgICAgICAgPT4gMSwKICAgICAgICAgICAgVXNlRGVmYXVsdFZhbHVlICAgICAgPT4gMSwKICAgICAgICAgICAgT3ZlcnJpZGVQb3NzaWJsZU5vbmUgPT4gdW5kZWYsCiAgICAgICAgICAgIExhbmd1YWdlT2JqZWN0ICAgICAgID0+ICRFbkxhbmd1YWdlT2JqZWN0CiAgICAgICAgfSwKICAgICAgICBFeHBlY3RlZFJlc3VsdHMgPT4gJycsCiAgICB9LAogICAgewogICAgICAgIE5hbWUgICA9PiAnRHluYW1pY0ZpZWxkIERhdGVUaW1lIEVOJywKICAgICAgICBDb25maWcgPT4gewogICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgICA9PiAkRHluYW1pY0ZpZWxkQ29uZmlnc3tEYXRlVGltZX0sCiAgICAgICAgICAgIFZhbHVlICAgICAgICAgICAgICAgID0+ICcyMDEzLzA4LzIxIDEzOjQ2JywKICAgICAgICAgICAgTWFuZGF0b3J5ICAgICAgICAgICAgPT4gMSwKICAgICAgICAgICAgVXNlRGVmYXVsdFZhbHVlICAgICAgPT4gMSwKICAgICAgICAgICAgT3ZlcnJpZGVQb3NzaWJsZU5vbmUgPT4gdW5kZWYsCiAgICAgICAgICAgIExhbmd1YWdlT2JqZWN0ICAgICAgID0+ICRFbkxhbmd1YWdlT2JqZWN0CiAgICAgICAgfSwKICAgICAgICBFeHBlY3RlZFJlc3VsdHMgPT4gewogICAgICAgICAgICBOYW1lICAgICAgPT4gJ0R5bmFtaWNGaWVsZF9EYXRlVGltZUZpZWxkJywKICAgICAgICAgICAgVGl0bGUgICAgID0+ICdPd25lcicsCiAgICAgICAgICAgIERhdGF0eXBlICA9PiAnRGF0ZVRpbWUnLAogICAgICAgICAgICBWaWV3dHlwZSAgPT4gJ1BpY2tlcicsCiAgICAgICAgICAgIE1hbmRhdG9yeSA9PiAxLAogICAgICAgICAgICBEZWZhdWx0ICAgPT4gJzIwMTMvMDgvMjEgMTM6NDYnLAogICAgICAgIH0sCiAgICB9LAogICAgewogICAgICAgIE5hbWUgICA9PiAnRHluYW1pY0ZpZWxkIERhdGVUaW1lIEVTJywKICAgICAgICBDb25maWcgPT4gewogICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgICA9PiAkRHluYW1pY0ZpZWxkQ29uZmlnc3tEYXRlVGltZX0sCiAgICAgICAgICAgIFZhbHVlICAgICAgICAgICAgICAgID0+ICcyMDEzLzA4LzIxIDEzOjQ2JywKICAgICAgICAgICAgTWFuZGF0b3J5ICAgICAgICAgICAgPT4gMSwKICAgICAgICAgICAgVXNlRGVmYXVsdFZhbHVlICAgICAgPT4gMSwKICAgICAgICAgICAgT3ZlcnJpZGVQb3NzaWJsZU5vbmUgPT4gdW5kZWYsCiAgICAgICAgICAgIExhbmd1YWdlT2JqZWN0ICAgICAgID0+ICRFc0xhbmd1YWdlT2JqZWN0CiAgICAgICAgfSwKICAgICAgICBFeHBlY3RlZFJlc3VsdHMgPT4gewogICAgICAgICAgICBOYW1lICAgICAgPT4gJ0R5bmFtaWNGaWVsZF9EYXRlVGltZUZpZWxkJywKICAgICAgICAgICAgVGl0bGUgICAgID0+ICdQcm9waWV0YXJpbycsCiAgICAgICAgICAgIERhdGF0eXBlICA9PiAnRGF0ZVRpbWUnLAogICAgICAgICAgICBWaWV3dHlwZSAgPT4gJ1BpY2tlcicsCiAgICAgICAgICAgIE1hbmRhdG9yeSA9PiAxLAogICAgICAgICAgICBEZWZhdWx0ICAgPT4gJzIwMTMvMDgvMjEgMTM6NDYnLAogICAgICAgIH0sCiAgICB9LAogICAgewogICAgICAgIE5hbWUgICA9PiAnRHluYW1pY0ZpZWxkIERhdGUgRU4nLAogICAgICAgIENvbmZpZyA9PiB7CiAgICAgICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyAgID0+ICREeW5hbWljRmllbGRDb25maWdze0RhdGV9LAogICAgICAgICAgICBWYWx1ZSAgICAgICAgICAgICAgICA9PiAnMjAxMy8wOC8yMSAxMzo0NicsCiAgICAgICAgICAgIE1hbmRhdG9yeSAgICAgICAgICAgID0+IDEsCiAgICAgICAgICAgIFVzZURlZmF1bHRWYWx1ZSAgICAgID0+IDEsCiAgICAgICAgICAgIE92ZXJyaWRlUG9zc2libGVOb25lID0+IHVuZGVmLAogICAgICAgICAgICBMYW5ndWFnZU9iamVjdCAgICAgICA9PiAkRW5MYW5ndWFnZU9iamVjdAogICAgICAgIH0sCiAgICAgICAgRXhwZWN0ZWRSZXN1bHRzID0+IHsKICAgICAgICAgICAgTmFtZSAgICAgID0+ICdEeW5hbWljRmllbGRfRGF0ZUZpZWxkJywKICAgICAgICAgICAgVGl0bGUgICAgID0+ICdPd25lcicsCiAgICAgICAgICAgIERhdGF0eXBlICA9PiAnRGF0ZScsCiAgICAgICAgICAgIFZpZXd0eXBlICA9PiAnUGlja2VyJywKICAgICAgICAgICAgTWFuZGF0b3J5ID0+IDEsCiAgICAgICAgICAgIERlZmF1bHQgICA9PiAnMjAxMy8wOC8yMSAxMzo0NicsCiAgICAgICAgfSwKICAgIH0sCiAgICB7CiAgICAgICAgTmFtZSAgID0+ICdEeW5hbWljRmllbGQgRGF0ZSBFUycsCiAgICAgICAgQ29uZmlnID0+IHsKICAgICAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnICAgPT4gJER5bmFtaWNGaWVsZENvbmZpZ3N7RGF0ZX0sCiAgICAgICAgICAgIFZhbHVlICAgICAgICAgICAgICAgID0+ICcyMDEzLzA4LzIxIDEzOjQ2JywKICAgICAgICAgICAgTWFuZGF0b3J5ICAgICAgICAgICAgPT4gMSwKICAgICAgICAgICAgVXNlRGVmYXVsdFZhbHVlICAgICAgPT4gMSwKICAgICAgICAgICAgT3ZlcnJpZGVQb3NzaWJsZU5vbmUgPT4gdW5kZWYsCiAgICAgICAgICAgIExhbmd1YWdlT2JqZWN0ICAgICAgID0+ICRFc0xhbmd1YWdlT2JqZWN0CiAgICAgICAgfSwKICAgICAgICBFeHBlY3RlZFJlc3VsdHMgPT4gewogICAgICAgICAgICBOYW1lICAgICAgPT4gJ0R5bmFtaWNGaWVsZF9EYXRlRmllbGQnLAogICAgICAgICAgICBUaXRsZSAgICAgPT4gJ1Byb3BpZXRhcmlvJywKICAgICAgICAgICAgRGF0YXR5cGUgID0+ICdEYXRlJywKICAgICAgICAgICAgVmlld3R5cGUgID0+ICdQaWNrZXInLAogICAgICAgICAgICBNYW5kYXRvcnkgPT4gMSwKICAgICAgICAgICAgRGVmYXVsdCAgID0+ICcyMDEzLzA4LzIxIDEzOjQ2JywKICAgICAgICB9LAogICAgfSwKKTsKCm15ICRERkJhY2tlbmRPYmplY3QgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6RHluYW1pY0ZpZWxkOjpCYWNrZW5kJyk7CgojIGV4ZWN1dGUgdGVzdHMKZm9yIG15ICRUZXN0IChAVGVzdHMpIHsKCiAgICAjIGNhbGwgSVBob25lRmllbGRQYXJhbWV0ZXJCdWlsZAogICAgbXkgJEZpZWxkRGVmaW5pdGlvbiA9ICRERkJhY2tlbmRPYmplY3QtPklQaG9uZUZpZWxkUGFyYW1ldGVyQnVpbGQoICV7ICRUZXN0LT57Q29uZmlnfSB9ICk7CgogICAgaWYgKCBJc0hhc2hSZWZXaXRoRGF0YSggJFRlc3QtPntFeHBlY3RlZFJlc3VsdHN9ICkgKSB7CiAgICAgICAgJFNlbGYtPklzRGVlcGx5KAogICAgICAgICAgICAkRmllbGREZWZpbml0aW9uLAogICAgICAgICAgICAkVGVzdC0+e0V4cGVjdGVkUmVzdWx0c30sCiAgICAgICAgICAgICIkVGVzdC0+e05hbWV9IElQaG9uZUZpZWxkUGFyYW1ldGVyQnVpbGQoKSA6IgogICAgICAgICk7CiAgICB9CiAgICBlbHNlIHsKICAgICAgICAkU2VsZi0+SXMoCiAgICAgICAgICAgICRGaWVsZERlZmluaXRpb24sCiAgICAgICAgICAgIHVuZGVmLAogICAgICAgICAgICAiJFRlc3QtPntOYW1lfSBJUGhvbmVGaWVsZFBhcmFtZXRlckJ1aWxkKCkgOiIKICAgICAgICApOwoKICAgIH0KfQoKIyB3ZSBkb24ndCBuZWVkIGFueSBjbGVhbnVwCjE7Cg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE4IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgojIyBubyBjcml0aWMgKE1vZHVsZXM6OlJlcXVpcmVFeHBsaWNpdFBhY2thZ2UpCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKdXNlIHV0Zjg7CnVzZSB2YXJzIChxdygkU2VsZikpOwoKdXNlIEtlcm5lbDo6U3lzdGVtOjpWYXJpYWJsZUNoZWNrIHF3KDphbGwpOwoKbXkgJENvbmZpZ09iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyk7CgokQ29uZmlnT2JqZWN0LT5TZXQoCiAgICBLZXkgICA9PiAnVGltZVpvbmVVc2VyJywKICAgIFZhbHVlID0+IDEKKTsKCiMgdGhlcmVzIGlzIG5vdCByZWFsbHkgbmVlZGVkIHRvIGFkZCB0aGUgZHluYW1pYyBmaWVsZHMgZm9yIHRoaXMgdGVzdCwgd2UgY2FuIGRlZmluZSBhIHN0YXRpYwojIHNldCBvZiBjb25maWd1cmF0aW9ucwpteSAlRHluYW1pY0ZpZWxkQ29uZmlncyA9ICgKICAgIFRleHQgPT4gewogICAgICAgIElEICAgICAgICAgICAgPT4gMTIzLAogICAgICAgIEludGVybmFsRmllbGQgPT4gMCwKICAgICAgICBOYW1lICAgICAgICAgID0+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+IHsKICAgICAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnICAgICA9PiAkRHluYW1pY0ZpZWxkQ29uZmlnc3tEYXRlfSwKICAgICAgICAgICAgRHluYW1pY0ZpZWxkX0RhdGVGaWVsZCA9PiAnMjAxMy0wOC0yMSAxMzo0NicsCiAgICAgICAgICAgIFVzZXJUaW1lWm9uZSAgICAgICAgICAgPT4gMTEsCiAgICAgICAgfSwKICAgICAgICBFeHBlY3RlZFJlc3VsdCA9PiAnMjAxMy0wOC0yMSAwMDowMDowMCcsCiAgICB9LAopOwoKbXkgJERGQmFja2VuZE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQ6OkJhY2tlbmQnKTsKCiMgZXhlY3V0ZSB0ZXN0cwpmb3IgbXkgJFRlc3QgKEBUZXN0cykgewoKICAgICMgY2FsbCBJUGhvbmVGaWVsZFZhbHVlR2V0CiAgICBteSAkVmFsdWUgPSAkREZCYWNrZW5kT2JqZWN0LT5JUGhvbmVGaWVsZFZhbHVlR2V0KCAleyAkVGVzdC0+e0NvbmZpZ30gfSApOwoKICAgIGlmICggJFRlc3QtPntFeHBlY3RlZFJlc3VsdH0gKSB7CiAgICAgICAgJFNlbGYtPklzKAogICAgICAgICAgICAkVmFsdWUsCiAgICAgICAgICAgICRUZXN0LT57RXhwZWN0ZWRSZXN1bHR9LAogICAgICAgICAgICAiJFRlc3QtPntOYW1lfSBJUGhvbmVGaWVsZFZhbHVlR2V0KCkgOiIKICAgICAgICApOwogICAgfQogICAgZWxzZSB7CiAgICAgICAgJFNlbGYtPklzKAogICAgICAgICAgICAkVmFsdWUsCiAgICAgICAgICAgIHVuZGVmLAogICAgICAgICAgICAiJFRlc3QtPntOYW1lfSBJUGhvbmVGaWVsZFZhbHVlR2V0KCkgOiIKICAgICAgICApOwogICAgfQp9CgojIHdlIGRvbid0IG5lZWQgYW55IGNsZWFudXAKMTsK
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE4IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgojIyBubyBjcml0aWMgKE1vZHVsZXM6OlJlcXVpcmVFeHBsaWNpdFBhY2thZ2UpCnVzZSBzdHJpY3Q7CnVzZSB3YXJuaW5nczsKdXNlIHV0Zjg7CnVzZSB2YXJzIChxdygkU2VsZikpOwoKIyBwcmV2ZW50IHVzZWQgb25seSBvbmNlIHdhcm5pbmcKdXNlIEtlcm5lbDo6U3lzdGVtOjpPYmplY3RNYW5hZ2VyOwoKdXNlIEtlcm5lbDo6U3lzdGVtOjpWYXJpYWJsZUNoZWNrIHF3KDphbGwpOwoKIyB0aGVyZXMgaXMgbm90IHJlYWxseSBuZWVkZWQgdG8gYWRkIHRoZSBkeW5hbWljIGZpZWxkcyBmb3IgdGhpcyB0ZXN0LCB3ZSBjYW4gZGVmaW5lIGEgc3RhdGljCiMgc2V0IG9mIGNvbmZpZ3VyYXRpb25zCm15ICVEeW5hbWljRmllbGRDb25maWdzID0gKAogICAgVGV4dCA9PiB7CiAgICAgICAgSUQgICAgICAgICAgICA9PiAxMjMsCiAgICAgICAgSW50ZXJuYWxGaWVsZCA9PiAwLAogICAgICAgIE5hbWUgICAgICAgICAgPT4gJ1RleHRGaWVsZCcsCiAgICAgICAgTGFiZWwgICAgICAgICA9PiAnT3duZXInLAogICAgICAgIEZpZWxkT3JkZXIgICAgPT4gMTIzLAogICAgICAgIEZpZWxkVHlwZSAgICAgPT4gJ1RleHQnLAogICAgICAgIE9iamVjdFR5cGUgICAgPT4gJ1RpY2tldCcsCiAgICAgICAgQ29uZmlnICAgICAgICA9PiB7CiAgICAgICAgICAgIERlZmF1bHRWYWx1ZSA9PiAnJywKICAgICAgICAgICAgTGluayAgICAgICAgID0+ICcnLAogICAgICAgIH0sCiAgICAgICAgVmFsaWRJRCAgICA9PiAxLAogICAgICAgIENyZWF0ZVRpbWUgPT4gJzIwMTEtMDItMDggMTU6MDg6MDAnLAogICAgICAgIENoYW5nZVRpbWUgPT4gJzIwMTEtMDYtMTEgMTc6MjI6MDAnLAogICAgfSwKICAgIFRleHRBcmVhID0+IHsKICAgICAgICBJRCAgICAgICAgICAgID0+IDEyMywKICAgICAgICBJbnRlcm5hbEZpZWxkID0+IDAsCiAgICAgICAgTmFtZSAgICAgICAgICA9PiAnVGV4dEFyZWFGaWVsZCcsCiAgICAgICAgTGFiZWwgICAgICAgICA9PiAnT3duZXInLAogICAgICAgIEZpZWxkT3JkZXIgICAgPT4gMTIzLAogICAgICAgIEZpZWxkVHlwZSAgICAgPT4gJ1RleHRBcmVhJywKICAgICAgICBPYmplY3RUeXBlICAgID0+ICdUaWNrZXQnLAogICAgICAgIENvbmZpZyAgICAgICAgPT4gewogICAgICAgICAgICBEZWZhdWx0VmFsdWUgPT4gJycsCiAgICAgICAgICAgIFJvd3MgICAgICAgICA9PiAnJywKICAgICAgICAgICAgQ29scyAgICAgICAgID0+ICcnLAogICAgICAgIH0sCiAgICAgICAgVmFsaWRJRCAgICA9PiAxLAogICAgICAgIENyZWF0ZVRpbWUgPT4gJzIwMTEtMDItMDggMTU6MDg6MDAnLAogICAgICAgIENoYW5nZVRpbWUgPT4gJzIwMTEtMDYtMTEgMTc6MjI6MDAnLAogICAgfSwKICAgIENoZWNrYm94ID0+IHsKICAgICAgICBJRCAgICAgICAgICAgID0+IDEyMywKICAgICAgICBJbnRlcm5hbEZpZWxkID0+IDAsCiAgICAgICAgTmFtZSAgICAgICAgICA9PiAnQ2hlY2tib3hGaWVsZCcsCiAgICAgICAgTGFiZWwgICAgICAgICA9PiAnT3duZXInLAogICAgICAgIEZpZWxkT3JkZXIgICAgPT4gMTIzLAogICAgICAgIEZpZWxkVHlwZSAgICAgPT4gJ0NoZWNrYm94JywKICAgICAgICBPYmplY3RUeXBlICAgID0+ICdUaWNrZXQnLAogICAgICAgIENvbmZpZyAgICAgICAgPT4gewogICAgICAgICAgICBEZWZhdWx0VmFsdWUgPT4gJycsCiAgICAgICAgfSwKICAgICAgICBWYWxpZElEICAgID0+IDEsCiAgICAgICAgQ3JlYXRlVGltZSA9PiAnMjAxMS0wMi0wOCAxNTowODowMCcsCiAgICAgICAgQ2hhbmdlVGltZSA9PiAnMjAxMS0wNi0xMSAxNzoyMjowMCcsCiAgICB9LAogICAgRHJvcGRvd24gPT4gewogICAgICAgIElEICAgICAgICAgICAgPT4gMTIzLAogICAgICAgIEludGVybmFsRmllbGQgPT4gMCwKICAgICAgICBOYW1lICAgICAgICAgID0+ICdEcm9wZG93bkZpZWxkJywKICAgICAgICBMYWJlbCAgICAgICAgID0+ICdPd25lcicsCiAgICAgICAgRmllbGRPcmRlciAgICA9PiAxMjMsCiAgICAgICAgRmllbGRUeXBlICAgICA9PiAnRHJvcGRvd24nLAogICAgICAgIE9iamVjdFR5cGUgICAgPT4gJ1RpY2tldCcsCiAgICAgICAgQ29uZmlnICAgICAgICA9PiB7CiAgICAgICAgICAgIERlZmF1bHRWYWx1ZSAgICAgICA9PiAnJywKICAgICAgICAgICAgTGluayAgICAgICAgICAgICAgID0+ICcnLAogICAgICAgICAgICBQb3NzaWJsZU5vbmUgICAgICAgPT4gJycsCiAgICAgICAgICAgIFRyYW5zbGF0YWJsZVZhbHVlcyA9PiAxLAogICAgICAgICAgICBQb3NzaWJsZVZhbHVlcyAgICAgPT4gewogICAgICAgICAgICAgICAgMSA9PiAnUHJpb3JpdHknLAogICAgICAgICAgICAgICAgMiA9PiAnU3RhdGUnLAogICAgICAgICAgICB9LAogICAgICAgIH0sCiAgICAgICAgVmFsaWRJRCAgICA9PiAxLAogICAgICAgIENyZWF0ZVRpbWUgPT4gJzIwMTEtMDItMDggMTU6MDg6MDAnLAogICAgICAgIENoYW5nZVRpbWUgPT4gJzIwMTEtMDYtMTEgMTc6MjI6MDAnLAogICAgfSwKICAgIE11bHRpc2VsZWN0ID0+IHsKICAgICAgICBJRCAgICAgICAgICAgID0+IDEyMywKICAgICAgICBJbnRlcm5hbEZpZWxkID0+IDAsCiAgICAgICAgTmFtZSAgICAgICAgICA9PiAnTXVsdGlzZWxlY3RGaWVsZCcsCiAgICAgICAgTGFiZWwgICAgICAgICA9PiAnT3duZXInLAogICAgICAgIEZpZWxkT3JkZXIgICAgPT4gMTIzLAogICAgICAgIEZpZWxkVHlwZSAgICAgPT4gJ011bHRpc2VsZWN0JywKICAgICAgICBPYmplY3RUeXBlICAgID0+ICdUaWNrZXQnLAogICAgICAgIENvbmZpZyAgICAgICAgPT4gewogICAgICAgICAgICBEZWZhdWx0VmFsdWUgICAgICAgPT4gJycsCiAgICAgICAgICAgIFBvc3NpYmxlTm9uZSAgICAgICA9PiAnJywKICAgICAgICAgICAgVHJhbnNsYXRhYmxlVmFsdWVzID0+IDEsCiAgICAgICAgICAgIFBvc3NpYmxlVmFsdWVzICAgICA9PiB7CiAgICAgICAgICAgICAgICAxID0+ICdQcmlvcml0eScsCiAgICAgICAgICAgICAgICAyID0+ICdTdGF0ZScsCiAgICAgICAgICAgIH0sCiAgICAgICAgfSwKICAgICAgICBWYWxpZElEICAgID0+IDEsCiAgICAgICAgQ3JlYXRlVGltZSA9PiAnMjAxMS0wMi0wOCAxNTowODowMCcsCiAgICAgICAgQ2hhbmdlVGltZSA9PiAnMjAxMS0wNi0xMSAxNzoyMjowMCcsCiAgICB9LAogICAgRGF0ZVRpbWUgPT4gewogICAgICAgIElEICAgICAgICAgICAgPT4gMTIzLAogICAgICAgIEludGVybmFsRmllbGQgPT4gMCwKICAgICAgICBOYW1lICAgICAgICAgID0+ICdEYXRlVGltZUZpZWxkJywKICAgICAgICBMYWJlbCAgICAgICAgID0+ICdPd25lcicsCiAgICAgICAgRmllbGRPcmRlciAgICA9PiAxMjMsCiAgICAgICAgRmllbGRUeXBlICAgICA9PiAnRGF0ZVRpbWUnLAogICAgICAgIE9iamVjdFR5cGUgICAgPT4gJ1RpY2tldCcsCiAgICAgICAgQ29uZmlnICAgICAgICA9PiB7CiAgICAgICAgICAgIERlZmF1bHRWYWx1ZSAgPT4gdW5kZWYsCiAgICAgICAgICAgIExpbmsgICAgICAgICAgPT4gJycsCiAgICAgICAgICAgIFllYXJzUGVyaW9kICAgPT4gJycsCiAgICAgICAgICAgIFllYXJzSW5GdXR1cmUgPT4gJycsCiAgICAgICAgICAgIFllYXJzSW5QYXN0ICAgPT4gJycsCiAgICAgICAgfSwKICAgICAgICBWYWxpZElEICAgID0+IDEsCiAgICAgICAgQ3JlYXRlVGltZSA9PiAnMjAxMS0wMi0wOCAxNTowODowMCcsCiAgICAgICAgQ2hhbmdlVGltZSA9PiAnMjAxMS0wNi0xMSAxNzoyMjowMCcsCiAgICB9LAogICAgRGF0ZSA9PiB7CiAgICAgICAgSUQgICAgICAgICAgICA9PiAxMjMsCiAgICAgICAgSW50ZXJuYWxGaWVsZCA9PiAwLAogICAgICAgIE5hbWUgICAgICAgICAgPT4gJ0RhdGVGaWVsZCcsCiAgICAgICAgTGFiZWwgICAgICAgICA9PiAnT3duZXInLAogICAgICAgIEZpZWxkT3JkZXIgICAgPT4gMTIzLAogICAgICAgIEZpZWxkVHlwZSAgICAgPT4gJ0RhdGUnLAogICAgICAgIE9iamVjdFR5cGUgICAgPT4gJ1RpY2tldCcsCiAgICAgICAgQ29uZmlnICAgICAgICA9PiB7CiAgICAgICAgICAgIERlZmF1bHRWYWx1ZSAgPT4gJycsCiAgICAgICAgICAgIExpbmsgICAgICAgICAgPT4gJycsCiAgICAgICAgICAgIFllYXJzUGVyaW9kICAgPT4gJycsCiAgICAgICAgICAgIFllYXJzSW5GdXR1cmUgPT4gJycsCiAgICAgICAgICAgIFllYXJzSW5QYXN0ICAgPT4gJycsCiAgICAgICAgfSwKICAgICAgICBWYWxpZElEICAgID0+IDEsCiAgICAgICAgQ3JlYXRlVGltZSA9PiAnMjAxMS0wMi0wOCAxNTowODowMCcsCiAgICAgICAgQ2hhbmdlVGltZSA9PiAnMjAxMS0wNi0xMSAxNzoyMjowMCcsCiAgICB9LAopOwoKIyBkZWZpbmUgdGVzdHMKbXkgQFRlc3RzID0gKAogICAgewogICAgICAgIE5hbWUgICA9PiAnRHluYW1pY0ZpZWxkIFRleHQnLAogICAgICAgIENvbmZpZyA9PiB7CiAgICAgICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyA9PiAkRHluYW1pY0ZpZWxkQ29uZmlnc3tUZXh0fSwKICAgICAgICAgICAgVmFsdWUgICAgICAgICAgICAgID0+ICdQcmlvcml0eScsCiAgICAgICAgICAgIE1hbmRhdG9yeSAgICAgICAgICA9PiAwLAogICAgICAgIH0sCiAgICAgICAgRXhwZWN0ZWRSZXN1bHRzID0+IHsKICAgICAgICAgICAgU2VydmVyRXJyb3IgID0+IHVuZGVmLAogICAgICAgICAgICBFcnJvck1lc3NhZ2UgPT4gdW5kZWYsCiAgICAgICAgfSwKICAgIH0sCiAgICB7CiAgICAgICAgTmFtZSAgID0+ICdEeW5hbWljRmllbGQgVGV4dCBFbXB0eScsCiAgICAgICAgQ29uZmlnID0+IHsKICAgICAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnID0+ICREeW5hbWljRmllbGRDb25maWdze1RleHR9LAogICAgICAgICAgICBWYWx1ZSAgICAgICAgICAgICAgPT4gJycsCiAgICAgICAgICAgIE1hbmRhdG9yeSAgICAgICAgICA9PiAwLAoKICAgICAgICB9LAogICAgICAgIEV4cGVjdGVkUmVzdWx0cyA9PiB7CiAgICAgICAgICAgIFNlcnZlckVycm9yICA9PiB1bmRlZiwKICAgICAgICAgICAgRXJyb3JNZXNzYWdlID0+IHVuZGVmLAogICAgICAgIH0sCiAgICB9LAogICAgewogICAgICAgIE5hbWUgICA9PiAnRHluYW1pY0ZpZWxkIFRleHQgRW1wdHkgTWFuZGF0b3J5JywKICAgICAgICBDb25maWcgPT4gewogICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgPT4gJER5bmFtaWNGaWVsZENvbmZpZ3N7VGV4dH0sCiAgICAgICAgICAgIFZhbHVlICAgICAgICAgICAgICA9PiAnJywKICAgICAgICAgICAgTWFuZGF0b3J5ICAgICAgICAgID0+IDEsCiAgICAgICAgfSwKICAgICAgICBFeHBlY3RlZFJlc3VsdHMgPT4gewogICAgICAgICAgICBTZXJ2ZXJFcnJvciAgPT4gMSwKICAgICAgICAgICAgRXJyb3JNZXNzYWdlID0+IHVuZGVmLAogICAgICAgIH0sCiAgICB9LAogICAgewogICAgICAgIE5hbWUgICA9PiAnRHluYW1pY0ZpZWxkIFRleHRBcmVhJywKICAgICAgICBDb25maWcgPT4gewogICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgPT4gJER5bmFtaWNGaWVsZENvbmZpZ3N7VGV4dEFyZWF9LAogICAgICAgICAgICBWYWx1ZSAgICAgICAgICAgICAgPT4gJ1ByaW9yaXR5JywKICAgICAgICAgICAgTWFuZGF0b3J5ICAgICAgICAgID0+IDAsCiAgICAgICAgfSwKICAgICAgICBFeHBlY3RlZFJlc3VsdHMgPT4gewogICAgICAgICAgICBTZXJ2ZXJFcnJvciAgPT4gdW5kZWYsCiAgICAgICAgICAgIEVycm9yTWVzc2FnZSA9PiB1bmRlZiwKICAgICAgICB9LAogICAgfSwKICAgIHsKICAgICAgICBOYW1lICAgPT4gJ0R5bmFtaWNGaWVsZCBUZXh0QXJlYSBFbXB0eScsCiAgICAgICAgQ29uZmlnID0+IHsKICAgICAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnID0+ICREeW5hbWljRmllbGRDb25maWdze1RleHRBcmVhfSwKICAgICAgICAgICAgVmFsdWUgICAgICAgICAgICAgID0+ICcnLAogICAgICAgICAgICBNYW5kYXRvcnkgICAgICAgICAgPT4gMCwKCiAgICAgICAgfSwKICAgICAgICBFeHBlY3RlZFJlc3VsdHMgPT4gewogICAgICAgICAgICBTZXJ2ZXJFcnJvciAgPT4gdW5kZWYsCiAgICAgICAgICAgIEVycm9yTWVzc2FnZSA9PiB1bmRlZiwKICAgICAgICB9LAogICAgfSwKICAgIHsKICAgICAgICBOYW1lICAgPT4gJ0R5bmFtaWNGaWVsZCBUZXh0QXJlYSBFbXB0eSBNYW5kYXRvcnknLAogICAgICAgIENvbmZpZyA9PiB7CiAgICAgICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyA9PiAkRHluYW1pY0ZpZWxkQ29uZmlnc3tUZXh0QXJlYX0sCiAgICAgICAgICAgIFZhbHVlICAgICAgICAgICAgICA9PiAnJywKICAgICAgICAgICAgTWFuZGF0b3J5ICAgICAgICAgID0+IDEsCiAgICAgICAgfSwKICAgICAgICBFeHBlY3RlZFJlc3VsdHMgPT4gewogICAgICAgICAgICBTZXJ2ZXJFcnJvciAgPT4gMSwKICAgICAgICAgICAgRXJyb3JNZXNzYWdlID0+IHVuZGVmLAogICAgICAgIH0sCiAgICB9LAogICAgewogICAgICAgIE5hbWUgICA9PiAnRHluYW1pY0ZpZWxkIENoZWNrYm94JywKICAgICAgICBDb25maWcgPT4gewogICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgPT4gJER5bmFtaWNGaWVsZENvbmZpZ3N7Q2hlY2tib3h9LAogICAgICAgICAgICBWYWx1ZSAgICAgICAgICAgICAgPT4gMSwKICAgICAgICAgICAgTWFuZGF0b3J5ICAgICAgICAgID0+IDAsCiAgICAgICAgfSwKICAgICAgICBFeHBlY3RlZFJlc3VsdHMgPT4gewogICAgICAgICAgICBTZXJ2ZXJFcnJvciAgPT4gdW5kZWYsCiAgICAgICAgICAgIEVycm9yTWVzc2FnZSA9PiB1bmRlZiwKICAgICAgICB9LAogICAgfSwKICAgIHsKICAgICAgICBOYW1lICAgPT4gJ0R5bmFtaWNGaWVsZCBDaGVja2JveCBFbXB0eScsCiAgICAgICAgQ29uZmlnID0+IHsKICAgICAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnID0+ICREeW5hbWljRmllbGRDb25maWdze0NoZWNrYm94fSwKICAgICAgICAgICAgVmFsdWUgICAgICAgICAgICAgID0+IDAsCiAgICAgICAgICAgIE1hbmRhdG9yeSAgICAgICAgICA9PiAwLAoKICAgICAgICB9LAogICAgICAgIEV4cGVjdGVkUmVzdWx0cyA9PiB7CiAgICAgICAgICAgIFNlcnZlckVycm9yICA9PiB1bmRlZiwKICAgICAgICAgICAgRXJyb3JNZXNzYWdlID0+IHVuZGVmLAogICAgICAgIH0sCiAgICB9LAogICAgewogICAgICAgIE5hbWUgICA9PiAnRHluYW1pY0ZpZWxkIENoZWNrYm94IEVtcHR5IE1hbmRhdG9yeScsCiAgICAgICAgQ29uZmlnID0+IHsKICAgICAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnID0+ICREeW5hbWljRmllbGRDb25maWdze0NoZWNrYm94fSwKICAgICAgICAgICAgVmFsdWUgICAgICAgICAgICAgID0+ICcnLAogICAgICAgICAgICBNYW5kYXRvcnkgICAgICAgICAgPT4gMSwKICAgICAgICB9LAogICAgICAgIEV4cGVjdGVkUmVzdWx0cyA9PiB7CiAgICAgICAgICAgIFNlcnZlckVycm9yICA9PiAxLAogICAgICAgICAgICBFcnJvck1lc3NhZ2UgPT4gdW5kZWYsCiAgICAgICAgfSwKICAgIH0sCiAgICB7CiAgICAgICAgTmFtZSAgID0+ICdEeW5hbWljRmllbGQgRHJvcGRvd24nLAogICAgICAgIENvbmZpZyA9PiB7CiAgICAgICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyA9PiAkRHluYW1pY0ZpZWxkQ29uZmlnc3tEcm9wZG93bn0sCiAgICAgICAgICAgIFZhbHVlICAgICAgICAgICAgICA9PiAxLAogICAgICAgICAgICBNYW5kYXRvcnkgICAgICAgICAgPT4gMCwKICAgICAgICB9LAogICAgICAgIEV4cGVjdGVkUmVzdWx0cyA9PiB7CiAgICAgICAgICAgIFNlcnZlckVycm9yICA9PiB1bmRlZiwKICAgICAgICAgICAgRXJyb3JNZXNzYWdlID0+IHVuZGVmLAogICAgICAgIH0sCiAgICB9LAogICAgewogICAgICAgIE5hbWUgICA9PiAnRHluYW1pY0ZpZWxkIERyb3Bkb3duIEVtcHR5JywKICAgICAgICBDb25maWcgPT4gewogICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgPT4gJER5bmFtaWNGaWVsZENvbmZpZ3N7RHJvcGRvd259LAogICAgICAgICAgICBWYWx1ZSAgICAgICAgICAgICAgPT4gMCwKICAgICAgICAgICAgTWFuZGF0b3J5ICAgICAgICAgID0+IDAsCgogICAgICAgIH0sCiAgICAgICAgRXhwZWN0ZWRSZXN1bHRzID0+IHsKICAgICAgICAgICAgU2VydmVyRXJyb3IgID0+IHVuZGVmLAogICAgICAgICAgICBFcnJvck1lc3NhZ2UgPT4gdW5kZWYsCiAgICAgICAgfSwKICAgIH0sCiAgICB7CiAgICAgICAgTmFtZSAgID0+ICdEeW5hbWljRmllbGQgRHJvcGRvd24gRW1wdHkgTWFuZGF0b3J5JywKICAgICAgICBDb25maWcgPT4gewogICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgPT4gJER5bmFtaWNGaWVsZENvbmZpZ3N7RHJvcGRvd259LAogICAgICAgICAgICBWYWx1ZSAgICAgICAgICAgICAgPT4gJycsCiAgICAgICAgICAgIE1hbmRhdG9yeSAgICAgICAgICA9PiAxLAogICAgICAgIH0sCiAgICAgICAgRXhwZWN0ZWRSZXN1bHRzID0+IHsKICAgICAgICAgICAgU2VydmVyRXJyb3IgID0+IDEsCiAgICAgICAgICAgIEVycm9yTWVzc2FnZSA9PiB1bmRlZiwKICAgICAgICB9LAogICAgfSwKICAgIHsKICAgICAgICBOYW1lICAgPT4gJ0R5bmFtaWNGaWVsZCBEcm9wZG93biBXcm9uZyBWYWx1ZScsCiAgICAgICAgQ29uZmlnID0+IHsKICAgICAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnID0+ICREeW5hbWljRmllbGRDb25maWdze0Ryb3Bkb3dufSwKICAgICAgICAgICAgVmFsdWUgICAgICAgICAgICAgID0+IDMsCiAgICAgICAgICAgIE1hbmRhdG9yeSAgICAgICAgICA9PiAxLAogICAgICAgIH0sCiAgICAgICAgRXhwZWN0ZWRSZXN1bHRzID0+IHsKICAgICAgICAgICAgU2VydmVyRXJyb3IgID0+IDEsCiAgICAgICAgICAgIEVycm9yTWVzc2FnZSA9PiAnVGhlIGZpZWxkIGNvbnRlbnQgaXMgaW52YWxpZCcsCiAgICAgICAgfSwKICAgIH0sCiAgICB7CiAgICAgICAgTmFtZSAgID0+ICdEeW5hbWljRmllbGQgTXVsdGlzZWxlY3QnLAogICAgICAgIENvbmZpZyA9PiB7CiAgICAgICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyA9PiAkRHluYW1pY0ZpZWxkQ29uZmlnc3tNdWx0aXNlbGVjdH0sCiAgICAgICAgICAgIFZhbHVlICAgICAgICAgICAgICA9PiAxLAogICAgICAgICAgICBNYW5kYXRvcnkgICAgICAgICAgPT4gMCwKICAgICAgICB9LAogICAgICAgIEV4cGVjdGVkUmVzdWx0cyA9PiAnJywKICAgIH0sCiAgICB7CiAgICAgICAgTmFtZSAgID0+ICdEeW5hbWljRmllbGQgTXVsdGlzZWxlY3QgRW1wdHknLAogICAgICAgIENvbmZpZyA9PiB7CiAgICAgICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyA9PiAkRHluYW1pY0ZpZWxkQ29uZmlnc3tNdWx0aXNlbGVjdH0sCiAgICAgICAgICAgIFZhbHVlICAgICAgICAgICAgICA9PiAwLAogICAgICAgICAgICBNYW5kYXRvcnkgICAgICAgICAgPT4gMCwKCiAgICAgICAgfSwKICAgICAgICBFeHBlY3RlZFJlc3VsdHMgPT4gJycsCiAgICB9LAogICAgewogICAgICAgIE5hbWUgICA9PiAnRHluYW1pY0ZpZWxkIE11bHRpc2VsZWN0IEVtcHR5IE1hbmRhdG9yeScsCiAgICAgICAgQ29uZmlnID0+IHsKICAgICAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnID0+ICREeW5hbWljRmllbGRDb25maWdze011bHRpc2VsZWN0fSwKICAgICAgICAgICAgVmFsdWUgICAgICAgICAgICAgID0+ICcnLAogICAgICAgICAgICBNYW5kYXRvcnkgICAgICAgICAgPT4gMSwKICAgICAgICB9LAogICAgICAgIEV4cGVjdGVkUmVzdWx0cyA9PiAnJywKICAgIH0sCiAgICB7CiAgICAgICAgTmFtZSAgID0+ICdEeW5hbWljRmllbGQgRGF0ZVRpbWUnLAogICAgICAgIENvbmZpZyA9PiB7CiAgICAgICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyA9PiAkRHluYW1pY0ZpZWxkQ29uZmlnc3tEYXRlVGltZX0sCiAgICAgICAgICAgIFZhbHVlICAgICAgICAgICAgICA9PiAnMjAxMy0wOC0yMSAxMzo0NjowMCcsCiAgICAgICAgICAgIE1hbmRhdG9yeSAgICAgICAgICA9PiAwLAogICAgICAgIH0sCiAgICAgICAgRXhwZWN0ZWRSZXN1bHRzID0+IHsKICAgICAgICAgICAgU2VydmVyRXJyb3IgID0+IHVuZGVmLAogICAgICAgICAgICBFcnJvck1lc3NhZ2UgPT4gdW5kZWYsCiAgICAgICAgfSwKICAgIH0sCiAgICB7CiAgICAgICAgTmFtZSAgID0+ICdEeW5hbWljRmllbGQgRGF0ZVRpbWUgZW1wdHknLAogICAgICAgIENvbmZpZyA9PiB7CiAgICAgICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyA9PiAkRHluYW1pY0ZpZWxkQ29uZmlnc3tEYXRlVGltZX0sCiAgICAgICAgICAgIFZhbHVlICAgICAgICAgICAgICA9PiAnJywKICAgICAgICAgICAgTWFuZGF0b3J5ICAgICAgICAgID0+IDAsCiAgICAgICAgfSwKICAgICAgICBFeHBlY3RlZFJlc3VsdHMgPT4gewogICAgICAgICAgICBTZXJ2ZXJFcnJvciAgPT4gdW5kZWYsCiAgICAgICAgICAgIEVycm9yTWVzc2FnZSA9PiB1bmRlZiwKICAgICAgICB9LAogICAgfSwKICAgIHsKICAgICAgICBOYW1lICAgPT4gJ0R5bmFtaWNGaWVsZCBEYXRlVGltZSBFbXB0eSBNYW5kYXRvcnknLAogICAgICAgIENvbmZpZyA9PiB7CiAgICAgICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyA9PiAkRHluYW1pY0ZpZWxkQ29uZmlnc3tEYXRlVGltZX0sCiAgICAgICAgICAgIFZhbHVlICAgICAgICAgICAgICA9PiAnJywKICAgICAgICAgICAgTWFuZGF0b3J5ICAgICAgICAgID0+IDEsCiAgICAgICAgfSwKICAgICAgICBFeHBlY3RlZFJlc3VsdHMgPT4gewogICAgICAgICAgICBTZXJ2ZXJFcnJvciAgPT4gMSwKICAgICAgICAgICAgRXJyb3JNZXNzYWdlID0+IHVuZGVmLAogICAgICAgIH0sCiAgICB9LAogICAgewogICAgICAgIE5hbWUgICA9PiAnRHluYW1pY0ZpZWxkIERhdGVUaW1lIFdyb25nIEZvcm1hdCcsCiAgICAgICAgQ29uZmlnID0+IHsKICAgICAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnID0+ICREeW5hbWljRmllbGRDb25maWdze0RhdGVUaW1lfSwKICAgICAgICAgICAgVmFsdWUgICAgICAgICAgICAgID0+ICcyMDEzLzA4LzIxIDEzOjQ2OjAwJywKICAgICAgICAgICAgTWFuZGF0b3J5ICAgICAgICAgID0+IDEsCiAgICAgICAgfSwKICAgICAgICBFeHBlY3RlZFJlc3VsdHMgPT4gewogICAgICAgICAgICBTZXJ2ZXJFcnJvciAgPT4gMSwKICAgICAgICAgICAgRXJyb3JNZXNzYWdlID0+IHVuZGVmLAogICAgICAgIH0sCiAgICB9LAogICAgewogICAgICAgIE5hbWUgICA9PiAnRHluYW1pY0ZpZWxkIERhdGVUaW1lIFdyb25nIERhdGUnLAogICAgICAgIENvbmZpZyA9PiB7CiAgICAgICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyA9PiAkRHluYW1pY0ZpZWxkQ29uZmlnc3tEYXRlVGltZX0sCiAgICAgICAgICAgIFZhbHVlICAgICAgICAgICAgICA9PiAnMjAxMy0zMS0yMSAxMzo0NjowMCcsCiAgICAgICAgICAgIE1hbmRhdG9yeSAgICAgICAgICA9PiAxLAogICAgICAgIH0sCiAgICAgICAgRXhwZWN0ZWRSZXN1bHRzID0+IHsKICAgICAgICAgICAgU2VydmVyRXJyb3IgID0+IDEsCiAgICAgICAgICAgIEVycm9yTWVzc2FnZSA9PiB1bmRlZiwKICAgICAgICB9LAogICAgfSwKICAgIHsKICAgICAgICBOYW1lICAgPT4gJ0R5bmFtaWNGaWVsZCBEYXRlJywKICAgICAgICBDb25maWcgPT4gewogICAgICAgICAgICBEeW5hbWljRmllbGRDb25maWcgPT4gJER5bmFtaWNGaWVsZENvbmZpZ3N7RGF0ZX0sCiAgICAgICAgICAgIFZhbHVlICAgICAgICAgICAgICA9PiAnMjAxMy0wOC0yMSAxMzo0NjowMCcsCiAgICAgICAgICAgIE1hbmRhdG9yeSAgICAgICAgICA9PiAwLAogICAgICAgIH0sCiAgICAgICAgRXhwZWN0ZWRSZXN1bHRzID0+IHsKICAgICAgICAgICAgU2VydmVyRXJyb3IgID0+IHVuZGVmLAogICAgICAgICAgICBFcnJvck1lc3NhZ2UgPT4gdW5kZWYsCiAgICAgICAgfSwKICAgIH0sCiAgICB7CiAgICAgICAgTmFtZSAgID0+ICdEeW5hbWljRmllbGQgRGF0ZSBlbXB0eScsCiAgICAgICAgQ29uZmlnID0+IHsKICAgICAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnID0+ICREeW5hbWljRmllbGRDb25maWdze0RhdGV9LAogICAgICAgICAgICBWYWx1ZSAgICAgICAgICAgICAgPT4gJycsCiAgICAgICAgICAgIE1hbmRhdG9yeSAgICAgICAgICA9PiAwLAogICAgICAgIH0sCiAgICAgICAgRXhwZWN0ZWRSZXN1bHRzID0+IHsKICAgICAgICAgICAgU2VydmVyRXJyb3IgID0+IHVuZGVmLAogICAgICAgICAgICBFcnJvck1lc3NhZ2UgPT4gdW5kZWYsCiAgICAgICAgfSwKICAgIH0sCiAgICB7CiAgICAgICAgTmFtZSAgID0+ICdEeW5hbWljRmllbGQgRGF0ZSBFbXB0eSBNYW5kYXRvcnknLAogICAgICAgIENvbmZpZyA9PiB7CiAgICAgICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyA9PiAkRHluYW1pY0ZpZWxkQ29uZmlnc3tEYXRlfSwKICAgICAgICAgICAgVmFsdWUgICAgICAgICAgICAgID0+ICcnLAogICAgICAgICAgICBNYW5kYXRvcnkgICAgICAgICAgPT4gMSwKICAgICAgICB9LAogICAgICAgIEV4cGVjdGVkUmVzdWx0cyA9PiB7CiAgICAgICAgICAgIFNlcnZlckVycm9yICA9PiAxLAogICAgICAgICAgICBFcnJvck1lc3NhZ2UgPT4gdW5kZWYsCiAgICAgICAgfSwKICAgIH0sCiAgICB7CiAgICAgICAgTmFtZSAgID0+ICdEeW5hbWljRmllbGQgRGF0ZSBXcm9uZyBGb3JtYXQnLAogICAgICAgIENvbmZpZyA9PiB7CiAgICAgICAgICAgIER5bmFtaWNGaWVsZENvbmZpZyA9PiAkRHluYW1pY0ZpZWxkQ29uZmlnc3tEYXRlfSwKICAgICAgICAgICAgVmFsdWUgICAgICAgICAgICAgID0+ICcyMDEzLzA4LzIxIDEzOjQ2OjAwJywKICAgICAgICAgICAgTWFuZGF0b3J5ICAgICAgICAgID0+IDEsCiAgICAgICAgfSwKICAgICAgICBFeHBlY3RlZFJlc3VsdHMgPT4gewogICAgICAgICAgICBTZXJ2ZXJFcnJvciAgPT4gMSwKICAgICAgICAgICAgRXJyb3JNZXNzYWdlID0+IHVuZGVmLAogICAgICAgIH0sCiAgICB9LAogICAgewogICAgICAgIE5hbWUgICA9PiAnRHluYW1pY0ZpZWxkIERhdGUgV3JvbmcgRGF0ZScsCiAgICAgICAgQ29uZmlnID0+IHsKICAgICAgICAgICAgRHluYW1pY0ZpZWxkQ29uZmlnID0+ICREeW5hbWljRmllbGRDb25maWdze0RhdGV9LAogICAgICAgICAgICBWYWx1ZSAgICAgICAgICAgICAgPT4gJzIwMTMtMzEtMjEgMTM6NDY6MDAnLAogICAgICAgICAgICBNYW5kYXRvcnkgICAgICAgICAgPT4gMSwKICAgICAgICB9LAogICAgICAgIEV4cGVjdGVkUmVzdWx0cyA9PiB7CiAgICAgICAgICAgIFNlcnZlckVycm9yICA9PiAxLAogICAgICAgICAgICBFcnJvck1lc3NhZ2UgPT4gdW5kZWYsCiAgICAgICAgfSwKICAgIH0sCgopOwoKbXkgJERGQmFja2VuZE9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpEeW5hbWljRmllbGQ6OkJhY2tlbmQnKTsKCiMgZXhlY3V0ZSB0ZXN0cwpmb3IgbXkgJFRlc3QgKEBUZXN0cykgewoKICAgICMgY2FsbCBJUGhvbmVGaWVsZFZhbHVlVmFsaWRhdGUKICAgIG15ICRSZXN1bHQgPSAkREZCYWNrZW5kT2JqZWN0LT5JUGhvbmVGaWVsZFZhbHVlVmFsaWRhdGUoICV7ICRUZXN0LT57Q29uZmlnfSB9ICk7CgogICAgaWYgKCBJc0hhc2hSZWZXaXRoRGF0YSggJFRlc3QtPntFeHBlY3RlZFJlc3VsdHN9ICkgKSB7CiAgICAgICAgJFNlbGYtPklzRGVlcGx5KAogICAgICAgICAgICAkUmVzdWx0LAogICAgICAgICAgICAkVGVzdC0+e0V4cGVjdGVkUmVzdWx0c30sCiAgICAgICAgICAgICIkVGVzdC0+e05hbWV9IElQaG9uZUZpZWxkVmFsdWVWYWxpZGF0ZSgpIDoiCiAgICAgICAgKTsKICAgIH0KICAgIGVsc2UgewogICAgICAgICRTZWxmLT5JcygKICAgICAgICAgICAgJFJlc3VsdCwKICAgICAgICAgICAgdW5kZWYsCiAgICAgICAgICAgICIkVGVzdC0+e05hbWV9IElQaG9uZUZpZWxkVmFsdWVWYWxpZGF0ZSgpIDoiCiAgICAgICAgKTsKICAgIH0KfQoKIyB3ZSBkb24ndCBuZWVkIGFueSBjbGVhbnVwCjE7Cg==
IyAtLQojIENvcHlyaWdodCAoQykgMjAwMS0yMDE4IE9UUlMgQUcsIGh0dHBzOi8vb3Rycy5jb20vCiMgLS0KIyBUaGlzIHNvZnR3YXJlIGNvbWVzIHdpdGggQUJTT0xVVEVMWSBOTyBXQVJSQU5UWS4gRm9yIGRldGFpbHMsIHNlZQojIHRoZSBlbmNsb3NlZCBmaWxlIENPUFlJTkcgZm9yIGxpY2Vuc2UgaW5mb3JtYXRpb24gKEdQTCkuIElmIHlvdQojIGRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBodHRwczovL3d3dy5nbnUub3JnL2xpY2Vuc2VzL2dwbC0zLjAudHh0LgojIC0tCgpwYWNrYWdlIHZhcjo6cGFja2FnZXNldHVwOjppUGhvbmVIYW5kbGU7Cgp1c2Ugc3RyaWN0Owp1c2Ugd2FybmluZ3M7Cgp1c2UgS2VybmVsOjpTeXN0ZW06OlZhcmlhYmxlQ2hlY2sgcXcoOmFsbCk7CgpvdXIgQE9iamVjdERlcGVuZGVuY2llcyA9ICgKICAgICdLZXJuZWw6OkNvbmZpZycsCiAgICAnS2VybmVsOjpTeXN0ZW06OkxvZycsCiAgICAnS2VybmVsOjpTeXN0ZW06Ok1haW4nLAogICAgJ0tlcm5lbDo6U3lzdGVtOjpQYWNrYWdlJywKICAgICdLZXJuZWw6OlN5c3RlbTo6U3lzQ29uZmlnJywKKTsKCj1oZWFkMSBOQU1FCgppUGhvbmVIYW5kbGUucG0gLSBjb2RlIHRvIGV4ZWN1dGUgZHVyaW5nIHBhY2thZ2UgaW5zdGFsbGF0aW9uCgo9aGVhZDEgU1lOT1BTSVMKCkFsbCBmdW5jdGlvbnMKCj1oZWFkMSBQVUJMSUMgSU5URVJGQUNFCgo9b3ZlciA0Cgo9Y3V0Cgo9aXRlbSBuZXcoKQoKY3JlYXRlIGFuIG9iamVjdAoKCmNyZWF0ZSBhbiBvYmplY3QKCiAgICB1c2UgS2VybmVsOjpTeXN0ZW06Ok9iamVjdE1hbmFnZXI7CiAgICBsb2NhbCAkS2VybmVsOjpPTSA9IEtlcm5lbDo6U3lzdGVtOjpPYmplY3RNYW5hZ2VyLT5uZXcoKTsKICAgIG15ICRDb2RlT2JqZWN0ID0gJEtlcm5lbDo6T00tPkdldCgndmFyOjpwYWNrYWdlc2V0dXA6OmlQaG9uZUhhbmRsZScpOwoKPWN1dAoKc3ViIG5ldyB7CiAgICBteSAoICRUeXBlLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgYWxsb2NhdGUgbmV3IGhhc2ggZm9yIG9iamVjdAogICAgbXkgJFNlbGYgPSB7fTsKICAgIGJsZXNzKCAkU2VsZiwgJFR5cGUgKTsKCiAgICAjIHJlYnVpbGQgWlpaKiBmaWxlcwogICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlN5c0NvbmZpZycpLT5Xcml0ZURlZmF1bHQoKTsKCiAgICAjIGRlZmluZSB0aGUgWlpaIGZpbGVzCiAgICBteSBAWlpaRmlsZXMgPSAoCiAgICAgICAgJ1paWkFBdXRvLnBtJywKICAgICAgICAnWlpaQXV0by5wbScsCiAgICApOwoKICAgICMgcmVsb2FkIHRoZSBaWlogZmlsZXMgKG1vZF9wZXJsIHdvcmthcm91bmQpCiAgICBmb3IgbXkgJFpaWkZpbGUgKEBaWlpGaWxlcykgewoKICAgICAgICBQUkVGSVg6CiAgICAgICAgZm9yIG15ICRQcmVmaXggKEBJTkMpIHsKICAgICAgICAgICAgbXkgJEZpbGUgPSAkUHJlZml4IC4gJy9LZXJuZWwvQ29uZmlnL0ZpbGVzLycgLiAkWlpaRmlsZTsKICAgICAgICAgICAgbmV4dCBQUkVGSVggaWYgIS1mICRGaWxlOwogICAgICAgICAgICBkbyAkRmlsZTsKICAgICAgICAgICAgbGFzdCBQUkVGSVg7CiAgICAgICAgfQogICAgfQoKICAgICMgYWx3YXlzIGRpc2NhcmQgdGhlIGNvbmZpZyBvYmplY3QgYmVmb3JlIHBhY2thZ2UgY29kZSBpcyBleGVjdXRlZCwKICAgICMgdG8gbWFrZSBzdXJlIHRoYXQgdGhlIGNvbmZpZyBvYmplY3Qgd2lsbCBiZSBjcmVhdGVkIG5ld2x5LCBzbyB0aGF0IGl0CiAgICAjIHdpbGwgdXNlIHRoZSByZWNlbnRseSB3cml0dGVuIG5ldyBjb25maWcgZnJvbSB0aGUgcGFja2FnZQogICAgJEtlcm5lbDo6T00tPk9iamVjdHNEaXNjYXJkKAogICAgICAgIE9iamVjdHMgPT4gWydLZXJuZWw6OkNvbmZpZyddLAogICAgKTsKCiAgICByZXR1cm4gJFNlbGY7Cn0KCj1pdGVtIENvZGVJbnN0YWxsKCkKCnJ1biB0aGUgY29kZSBpbnN0YWxsIHBhcnQKCiAgICBteSAkUmVzdWx0ID0gJENvZGVPYmplY3QtPkNvZGVJbnN0YWxsKCk7Cgo9Y3V0CgpzdWIgQ29kZUluc3RhbGwgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAkU2VsZi0+X1VwZGF0ZVJlbGVhc2VGaWxlKCk7CgogICAgcmV0dXJuIDE7Cn0KCj1pdGVtIENvZGVSZWluc3RhbGwoKQoKcnVuIHRoZSBjb2RlIHJlaW5zdGFsbCBwYXJ0CgogICAgbXkgJFJlc3VsdCA9ICRDb2RlT2JqZWN0LT5Db2RlUmVpbnN0YWxsKCk7Cgo9Y3V0CgpzdWIgQ29kZVJlaW5zdGFsbCB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICRTZWxmLT5fVXBkYXRlUmVsZWFzZUZpbGUoKTsKICAgICRTZWxmLT5fTWlncmF0ZUNvbmZpZ3VyYXRpb25zKCk7CgogICAgcmV0dXJuIDE7Cn0KCj1pdGVtIENvZGVVcGdyYWRlKCkKCnJ1biB0aGUgY29kZSB1cGdyYWRlIHBhcnQKCiAgICBteSAkUmVzdWx0ID0gJENvZGVPYmplY3QtPkNvZGVVcGdyYWRlKCk7Cgo9Y3V0CgpzdWIgQ29kZVVwZ3JhZGUgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAkU2VsZi0+X1VwZGF0ZVJlbGVhc2VGaWxlKCk7CiAgICAkU2VsZi0+X01pZ3JhdGVDb25maWd1cmF0aW9ucygpOwoKICAgIHJldHVybiAxOwp9Cgo9aXRlbSBDb2RlVW5pbnN0YWxsKCkKCnJ1biB0aGUgY29kZSB1bmluc3RhbGwgcGFydAoKICAgIG15ICRSZXN1bHQgPSAkQ29kZU9iamVjdC0+Q29kZVVuaW5zdGFsbCgpOwoKPWN1dAoKc3ViIENvZGVVbmluc3RhbGwgewogICAgbXkgKCAkU2VsZiwgJVBhcmFtICkgPSBAXzsKCiAgICAkU2VsZi0+X1JlbW92ZVJlbGVhc2VGaWxlKCk7CgogICAgcmV0dXJuIDE7Cn0KCj1pdGVtIF9VcGRhdGVSZWxlYXNlRmlsZSgpCgpjcmVhdGVzIG9yIHVwZGF0ZXMgUkVMRUFTRS5pUGhvbmVIYW5kbGUgZmlsZQoKICAgIG15ICRSZXN1bHQgPSAkQ29kZU9iamVjdC0+X1VwZGF0ZVJlbGVhc2VGaWxlKCk7Cgo9Y3V0CgpzdWIgX1VwZGF0ZVJlbGVhc2VGaWxlIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgJFBhY2thZ2VWZXJzaW9uOwoKICAgICMgZ2V0IHBhY2thZ2Ugb2JqZWN0CiAgICBteSAkUGFja2FnZU9iamVjdCA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpQYWNrYWdlJyk7CgogICAgIyBnZXQgdGhlIGluc3RhbGxlZCB2ZXJzaW9uIG9mIGlQaG9uZUhhbmRsZSBwYWNrYWdlCiAgICBQQUNLQUdFOgogICAgZm9yIG15ICRQYWNrYWdlICggJFBhY2thZ2VPYmplY3QtPlJlcG9zaXRvcnlMaXN0KCkgKSB7CiAgICAgICAgaWYgKCAkUGFja2FnZS0+e05hbWV9LT57Q29udGVudH0gZXEgJ2lQaG9uZUhhbmRsZScgKSB7CiAgICAgICAgICAgICRQYWNrYWdlVmVyc2lvbiA9ICRQYWNrYWdlLT57VmVyc2lvbn0tPntDb250ZW50fTsKICAgICAgICAgICAgbGFzdCBQQUNLQUdFOwogICAgICAgIH0KICAgIH0KCiAgICAjIGlmIG5vIGlQaG9uZUhhbmRsZSBwYWNrYWdlIGZvdW5kIGFuZCB0aGUgY29kZSBpbnN0YWxsIGlzIGV4ZWN1dGVkIHRoaXMgbXVzdCBiZSBhCiAgICAjIGRldmVsb3BtZW50IHNjZW5hcmlvCiAgICBpZiAoICEkUGFja2FnZVZlcnNpb24gKSB7CiAgICAgICAgJFBhY2thZ2VWZXJzaW9uID0gJ2dpdCc7CiAgICB9CgogICAgIyBnZXQgaG9tZSBwYXRoCiAgICBteSAkSG9tZSA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6Q29uZmlnJyktPkdldCgnSG9tZScpOwoKICAgICMgY3JlYXRlIG9yIG92ZXJ3cml0ZSBSRUxFQVNFLmlQaG9uZUhhbmRsZSBmaWxlCiAgICBteSAkQ29udGVudCAgICAgID0gIlBST0RVQ1QgPSBpUGhvbmVIYW5kbGVcblZFUlNJT04gPSAkUGFja2FnZVZlcnNpb24iOwogICAgbXkgJEZpbGVMb2NhdGlvbiA9ICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpNYWluJyktPkZpbGVXcml0ZSgKICAgICAgICBMb2NhdGlvbiA9PiAiJEhvbWUvdmFyL1JFTEVBU0UuaVBob25lSGFuZGxlIiwKICAgICAgICBDb250ZW50ICA9PiBcJENvbnRlbnQsCiAgICApOwoKICAgIGlmICggISRGaWxlTG9jYXRpb24gKSB7CiAgICAgICAgJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OkxvZycpLT5Mb2coCiAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgIE1lc3NhZ2UgID0+ICJFUlJPUjogQ2FuJ3Qgd3JpdGUgJEhvbWUvdmFyL1JFTEVBU0UuaVBob25lSGFuZGxlIS5cbiIsCiAgICAgICAgKTsKCiAgICAgICAgcmV0dXJuIC0xOwogICAgfQoKICAgICMgY2hlY2sgUkVMRUFTRSBmaWxlCiAgICBpZiAoICEtZSAiJEhvbWUvdmFyL1JFTEVBU0UuaVBob25lSGFuZGxlIiApIHsKICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgUHJpb3JpdHkgPT4gJ2Vycm9yJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gIkZpbGUgJEhvbWUvdmFyL1JFTEVBU0UuaVBob25lSGFuZGxlIHdhcyBub3QgY3JlYXRlZCEuXG4iLAogICAgICAgICk7CiAgICB9CgogICAgcmV0dXJuIDE7Cn0KCj1pdGVtIF9SZW1vdmVSZWxlYXNlRmlsZSgpCgpyZW1vdmVzIFJFTEVBU0UuaVBob25lSGFuZGxlIGZpbGUgZnJvbSB0aGUgZmlsZSBzeXN0ZW0KCiAgICBteSAkUmVzdWx0ID0gJENvZGVPYmplY3QtPl9SZW1vdmVSZWxlYXNlRmlsZSgpOwoKPWN1dAoKc3ViIF9SZW1vdmVSZWxlYXNlRmlsZSB7CiAgICBteSAoICRTZWxmLCAlUGFyYW0gKSA9IEBfOwoKICAgICMgZ2V0IGhvbWUgcGF0aAogICAgbXkgJEhvbWUgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpLT5HZXQoJ0hvbWUnKTsKCiAgICAjIGRlbGV0ZSBSRUxFQVNFIGZpbGUKICAgIGlmICggLWUgIiRIb21lL3Zhci9SRUxFQVNFLmlQaG9uZUhhbmRsZSIgKSB7CiAgICAgICAgaWYgKCAhdW5saW5rICIkSG9tZS92YXIvUkVMRUFTRS5pUGhvbmVIYW5kbGUiICkgewogICAgICAgICAgICAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OlN5c3RlbTo6TG9nJyktPkxvZygKICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICBNZXNzYWdlICA9PiAiRmlsZSAkSG9tZS92YXIvUkVMRUFTRS5pUGhvbmVIYW5kbGUgY291bGQgbm90IGJlIGRlbGV0ZWQhLlxuIiwKICAgICAgICAgICAgKTsKICAgICAgICB9CgogICAgICAgIHJldHVybiAtMTsKICAgIH0KICAgIGVsc2UgewogICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICBQcmlvcml0eSA9PiAnbm90aWNlJywKICAgICAgICAgICAgTWVzc2FnZSAgPT4gIkZpbGUgJEhvbWUvdmFyL1JFTEVBU0UuaVBob25lSGFuZGxlIHdhcyBhbHJlYWR5IGRlbGV0ZWQhLlxuIiwKICAgICAgICApOwogICAgfQoKICAgIHJldHVybiAxOwp9Cgo9aXRlbSBfTWlncmF0ZUNvbmZpZ3VyYXRpb25zKCkKCm1pZ3JhdGVzIG9sZCBUaWNrZXRGcmVlVGV4dCwgVGlja2V0RnJlZVRpbWUgYW5kIEFydGljbGVGcmVlVGV4dCBjb25maWd1cmF0aW9ucyB0byBuZXcgRHluYW1pYwpGaWVsZHMgQ29uZmlndXJhdGlvbnMKCiAgICBteSAkUmVzdWx0ID0gJENvZGVPYmplY3QtPl9NaWdyYXRlQ29uZmlndXJhdGlvbnMoKTsKCj1jdXQKCnN1YiBfTWlncmF0ZUNvbmZpZ3VyYXRpb25zIHsKICAgIG15ICggJFNlbGYsICVQYXJhbSApID0gQF87CgogICAgbXkgQFNjcmVlbnMgPSAoCiAgICAgICAgJ2lQaG9uZTo6RnJvbnRlbmQ6OkFnZW50VGlja2V0UGhvbmUnLAogICAgICAgICdpUGhvbmU6OkZyb250ZW5kOjpBZ2VudFRpY2tldE5vdGUnLAogICAgICAgICdpUGhvbmU6OkZyb250ZW5kOjpBZ2VudFRpY2tldENsb3NlJywKICAgICAgICAnaVBob25lOjpGcm9udGVuZDo6QWdlbnRUaWNrZXRDb21wb3NlJywKICAgICAgICAnaVBob25lOjpGcm9udGVuZDo6QWdlbnRUaWNrZXRNb3ZlJywKICAgICk7CgogICAgbXkgQEZyZWVGaWVsZFR5cGVzID0gKAogICAgICAgICdUaWNrZXRGcmVlVGV4dCcsCiAgICAgICAgJ1RpY2tldEZyZWVUaW1lJywKICAgICAgICAnQXJ0aWNsZUZyZWVUZXh0JywKICAgICk7CgogICAgU0NSRUVOOgogICAgZm9yIG15ICRTY3JlZW4gKEBTY3JlZW5zKSB7CgogICAgICAgIG15ICRTY3JlZW5Db25maWcgPSAkS2VybmVsOjpPTS0+R2V0KCdLZXJuZWw6OkNvbmZpZycpLT5HZXQoJFNjcmVlbik7CgogICAgICAgICMgc2tpcCBzY3JlZW4gaWYgRHluYW1pYyBGaWVsZHMgYXJlIGFscmVhZHkgZGVmaW5lZAogICAgICAgIG5leHQgU0NSRUVOIGlmIElzSGFzaFJlZldpdGhEYXRhKCAkU2NyZWVuQ29uZmlnLT57RHluYW1pY0ZpZWxkfSApOwoKICAgICAgICBteSAlRmllbGRzVG9BZGQ7CgogICAgICAgICMgZ2F0aGVyIGFsbCBmcmVlIGZpZWxkcyBmb3IgdGhpcyBzY3JlZW4KICAgICAgICBmb3IgbXkgJEZyZWVGaWVsZFR5cGUgKEBGcmVlRmllbGRUeXBlcykgewoKICAgICAgICAgICAgIyBjaGVjayBpZiBGcmVlRmllbGRUeXBlIGNvbmZpZ3VyYXRpb24gaXMgc2V0IGFuZCBnZXQgdGhlIGNvbmZpZ3VyZWQgZmllbGRzCiAgICAgICAgICAgIGlmICggSXNIYXNoUmVmV2l0aERhdGEoICRTY3JlZW5Db25maWctPnskRnJlZUZpZWxkVHlwZX0gKSApIHsKCiAgICAgICAgICAgICAgICBGUkVFRklFTEQ6CiAgICAgICAgICAgICAgICBmb3IgbXkgJEZyZWVGaWVsZCAoIHNvcnQga2V5cyAleyAkU2NyZWVuQ29uZmlnLT57JEZyZWVGaWVsZFR5cGV9IH0gKSB7CgogICAgICAgICAgICAgICAgICAgICMgc2tpcCB0aGUgRnJlZUZpZWxkcyB0aGF0IGFyZSBzZXQgdG8gMAogICAgICAgICAgICAgICAgICAgIG5leHQgRlJFRUZJRUxEIGlmICEkU2NyZWVuQ29uZmlnLT57JEZyZWVGaWVsZFR5cGV9LT57JEZyZWVGaWVsZH07CgogICAgICAgICAgICAgICAgICAgICMgYWRkIGZpZWxkIHNldHRpbmcgKDEgb3IgMikgdG8gdGhlIEZpZWxkc1RvQWRkIGhhc2gKICAgICAgICAgICAgICAgICAgICAkRmllbGRzVG9BZGR7ICRGcmVlRmllbGRUeXBlIC4gJEZyZWVGaWVsZCB9ID0gJFNjcmVlbkNvbmZpZy0+eyRGcmVlRmllbGRUeXBlfS0+eyRGcmVlRmllbGR9OwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAjIHVwZGF0ZSBEeW5hbWljRmllbGQgY29uZmlndXJhdGlvbiBmb3IgdGhlIHNjcmVlbiBhbmQgYWRkIHRoZSBjb25maWd1cmVkIEZyZWVGaWVsZHMKICAgICAgICBpZiAoIElzSGFzaFJlZldpdGhEYXRhKCBcJUZpZWxkc1RvQWRkICkgKSB7CiAgICAgICAgICAgIG15ICRTdWNjZXNzID0gJEtlcm5lbDo6T00tPkdldCgnS2VybmVsOjpTeXN0ZW06OlN5c0NvbmZpZycpLT5Db25maWdJdGVtVXBkYXRlKAogICAgICAgICAgICAgICAgVmFsaWQgPT4gMSwKICAgICAgICAgICAgICAgIEtleSAgID0+ICRTY3JlZW4gLiAnIyMjRHluYW1pY0ZpZWxkJywKICAgICAgICAgICAgICAgIFZhbHVlID0+IFwlRmllbGRzVG9BZGQsCiAgICAgICAgICAgICk7CgogICAgICAgICAgICBpZiAoICEkU3VjY2VzcyApIHsKICAgICAgICAgICAgICAgICRLZXJuZWw6Ok9NLT5HZXQoJ0tlcm5lbDo6U3lzdGVtOjpMb2cnKS0+TG9nKAogICAgICAgICAgICAgICAgICAgIFByaW9yaXR5ID0+ICdlcnJvcicsCiAgICAgICAgICAgICAgICAgICAgTWVzc2FnZSAgPT4gIkNhbid0IHVwZGF0ZSBEeW5hbWljRmllbGQgY29uZmlndXJhdGlvbiBmb3IgJFNjcmVlbiEuXG4iLAogICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICByZXR1cm4gLTE7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgcmV0dXJuIDE7Cn0KCjE7Cgo9YmFjawoKPWhlYWQxIFRFUk1TIEFORCBDT05ESVRJT05TCgpUaGlzIHNvZnR3YXJlIGlzIHBhcnQgb2YgdGhlIE9UUlMgcHJvamVjdCAoTDxodHRwczovL290cnMub3JnLz4pLgoKVGhpcyBzb2Z0d2FyZSBjb21lcyB3aXRoIEFCU09MVVRFTFkgTk8gV0FSUkFOVFkuIEZvciBkZXRhaWxzLCBzZWUKdGhlIGVuY2xvc2VkIGZpbGUgQ09QWUlORyBmb3IgbGljZW5zZSBpbmZvcm1hdGlvbiAoR1BMKS4gSWYgeW91CmRpZCBub3QgcmVjZWl2ZSB0aGlzIGZpbGUsIHNlZSBMPGh0dHBzOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvZ3BsLTMuMC50eHQ+LgoKPWN1dAo=
JVBERi0xLjQKJaqrrK0KMSAwIG9iago8PAovQ3JlYXRvciAoQXBhY2hlIEZPUCBWZXJzaW9uIDIuMSkKL1Byb2R1Y2VyIChBcGFjaGUgRk9QIFZlcnNpb24gMi4xKQovQ3JlYXRpb25EYXRlIChEOjIwMTgwOTE0MTcyNjU2KzAyJzAwJykKPj4KZW5kb2JqCjIgMCBvYmoKPDwKICAvTiAzCiAgL0xlbmd0aCAzIDAgUgogIC9GaWx0ZXIgL0ZsYXRlRGVjb2RlCj4+CnN0cmVhbQp4nO2ZZ1BUWRaA73uvc6Chu2kyNDlJlNCA5JwkSBYV6G4yLTQ5mJDBERhBRCQpgogCDjg6BBlFRRQDoqCAeRoZBJRxcBRRUVnAH7NVu7VbW7W1f7bPj/e+OufWO+e+ulXvq3oAyJDi2QnJsD4ACbwUvq+zHTMoOISJvQ9wgAxIgAow4ezkRFtvbw+wHCtrwT/E+1EArdzv6fzz+r8MEieBxwEAoi9zLIebzF7mncsczUngrOSnVzg9JTEFANh7men85QGXmbPCEd84Y4WjvnHR6ho/X/tlPgoAjhS1yoRTKxyxytSuFWZH8xMAkO5bXq/CTuQvP196pZfitxlWQ3RlP8woLo/LD0/hcpj/4db+ffxdL3Ty8sv/rzf4H/dZOTvf6K3l6pmAGBV/5baWAcB6DQBS8ldO5TAAlN0AdPT8lYs4DkBnCQCSz9ip/LRvOdTq7IAAKIAOpIA8UAYaQAcYAlNgAWyAI3ADXsAPBIPNgA2iQQLgg3SQA3aBfFAISsBBUAVqQQNoAq3gDOgE58FlcA3cAnfBCHgMBGASvAJz4D1YhCAIC5EhGiQFKUCqkDZkCLEgK8gR8oB8oWAoDIqCeFAqlAPthgqhUqgKqoOaoJ+gc9Bl6AY0BD2ExqEZ6E/oE4zAJJgOy8FqsB7Mgm1hd9gP3gRHwUlwFpwH74Mr4Hr4FNwBX4ZvwSOwAH4FzyMAISIMRBHRQViIPeKFhCCRCB/ZjhQg5Ug90op0I/3IPUSAzCIfURgUDcVE6aAsUC4ofxQblYTajipCVaFOojpQfah7qHHUHOormoyWRWujzdGu6CB0FDodnY8uRzei29FX0SPoSfR7DAbDwKhjTDEumGBMLCYbU4Q5jGnDXMIMYSYw81gsVgqrjbXEemHDsSnYfGwl9hT2InYYO4n9gCPi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YmoKNCAwIG9iagpbL0lDQ0Jhc2VkIDIgMCBSXQplbmRvYmoKNSAwIG9iago8PAogIC9UeXBlIC9NZXRhZGF0YQogIC9TdWJ0eXBlIC9YTUwKICAvTGVuZ3RoIDYgMCBSCj4+CnN0cmVhbQo8P3hwYWNrZXQgYmVnaW49Iu+7vyIgaWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/Pjx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iPgo8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgo8cmRmOkRlc2NyaXB0aW9uIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgcmRmOmFib3V0PSIiPgo8ZGM6Zm9ybWF0PmFwcGxpY2F0aW9uL3BkZjwvZGM6Zm9ybWF0Pgo8ZGM6bGFuZ3VhZ2U+ZW48L2RjOmxhbmd1YWdlPgo8ZGM6ZGF0ZT4yMDE4LTA5LTE0VDE3OjI2OjU2KzAyOjAwPC9kYzpkYXRlPgo8L3JkZjpEZXNjcmlwdGlvbj4KPHJkZjpEZXNjcmlwdGlvbiB4bWxuczpwZGY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vcGRmLzEuMy8iIHJkZjphYm91dD0iIj4KPHBkZjpQcm9kdWNlcj5BcGFjaGUgRk9QIFZlcnNpb24gMi4xPC9wZGY6UHJvZHVjZXI+CjxwZGY6UERGVmVyc2lvbj4xLjQ8L3BkZjpQREZWZXJzaW9uPgo8L3JkZjpEZXNjcmlwdGlvbj4KPHJkZjpEZXNjcmlwdGlvbiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHJkZjphYm91dD0iIj4KPHhtcDpDcmVhdG9yVG9vbD5BcGFjaGUgRk9QIFZlcnNpb24gMi4xPC94bXA6Q3JlYXRvclRvb2w+Cjx4bXA6TWV0YWRhdGFEYXRlPjIwMTgtMDktMTRUMTc6MjY6NTYrMDI6MDA8L3htcDpNZXRhZGF0YURhdGU+Cjx4bXA6Q3JlYXRlRGF0ZT4yMDE4LTA5LTE0VDE3OjI2OjU2KzAyOjAwPC94bXA6Q3JlYXRlRGF0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L0QgWzI4IDAgUiAvWFlaIDcyLjAgNzIwLjAgbnVsbF0KPj4KZW5kb2JqCjYxIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDgwLjAgNjY3LjYyOSAxNTMuODU4IDY3Ny42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNjAgMCBSCi9IIC9JCgo+PgplbmRvYmoKNjIgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjYzOCA2NjcuNjI5IDUzOS45OTggNjc3LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA2MCAwIFIKL0ggL0kKCj4+CmVuZG9iago2MyAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyOCAwIFIgL1hZWiA3Mi4wIDcwMC44IG51bGxdCj4+CmVuZG9iago2NCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA2NTUuNjI5IDE1NS4xNjEgNjY1LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA2MyAwIFIKL0ggL0kKCj4+CmVuZG9iago2NSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNjM3IDY1NS42MjkgNTM5Ljk5NyA2NjUuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDYzIDAgUgovSCAvSQoKPj4KZW5kb2JqCjY2IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzI4IDAgUiAvWFlaIDcyLjAgNjU4LjQgbnVsbF0KPj4KZW5kb2JqCjY3IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDY0My42MjkgMTg1LjE3NiA2NTMuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDY2IDAgUgovSCAvSQoKPj4KZW5kb2JqCjY4IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy42MzggNjQzLjYyOSA1MzkuOTk4IDY1My42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNjYgMCBSCi9IIC9JCgo+PgplbmRvYmoKNjkgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjggMCBSIC9YWVogNzIuMCA2MzguMCBudWxsXQo+PgplbmRvYmoKNzAgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTI4LjAgNjMxLjYyOSAyMTIuNTU0IDY0MS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNjkgMCBSCi9IIC9JCgo+PgplbmRvYmoKNzEgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjYzNyA2MzEuNjI5IDUzOS45OTcgNjQxLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA2OSAwIFIKL0ggL0kKCj4+CmVuZG9iago3MiAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyOCAwIFIgL1hZWiA3Mi4wIDU4Ni4wIG51bGxdCj4+CmVuZG9iago3MyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMjguMCA2MTkuNjI5IDIxMS41NjQgNjI5LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA3MiAwIFIKL0ggL0kKCj4+CmVuZG9iago3NCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNjM4IDYxOS42MjkgNTM5Ljk5OCA2MjkuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDcyIDAgUgovSCAvSQoKPj4KZW5kb2JqCjc1IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzI4IDAgUiAvWFlaIDcyLjAgNTM0LjAgbnVsbF0KPj4KZW5kb2JqCjc2IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEyOC4wIDYwNy42MjkgMjMwLjcxMSA2MTcuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDc1IDAgUgovSCAvSQoKPj4KZW5kb2JqCjc3IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy42MzcgNjA3LjYyOSA1MzkuOTk3IDYxNy42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNzUgMCBSCi9IIC9JCgo+PgplbmRvYmoKNzggMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjggMCBSIC9YWVogNzIuMCA0ODIuMCBudWxsXQo+PgplbmRvYmoKNzkgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTI4LjAgNTk1LjYyOSAyMjMuMjM0IDYwNS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNzggMCBSCi9IIC9JCgo+PgplbmRvYmoKODAgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjYzNyA1OTUuNjI5IDUzOS45OTcgNjA1LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA3OCAwIFIKL0ggL0kKCj4+CmVuZG9iago4MSAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyOCAwIFIgL1hZWiA3Mi4wIDQzMC4wIG51bGxdCj4+CmVuZG9iago4MiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMjguMCA1ODMuNjI5IDIxNC42MzggNTkzLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA4MSAwIFIKL0ggL0kKCj4+CmVuZG9iago4MyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNjM4IDU4My42MjkgNTM5Ljk5OCA1OTMuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDgxIDAgUgovSCAvSQoKPj4KZW5kb2JqCjg0IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzI4IDAgUiAvWFlaIDcyLjAgMzc4LjAgbnVsbF0KPj4KZW5kb2JqCjg1IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEyOC4wIDU3MS42MjkgMjM5LjM1OCA1ODEuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDg0IDAgUgovSCAvSQoKPj4KZW5kb2JqCjg2IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy42MzcgNTcxLjYyOSA1MzkuOTk3IDU4MS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgODQgMCBSCi9IIC9JCgo+PgplbmRvYmoKODcgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjggMCBSIC9YWVogNzIuMCAzMjYuMCBudWxsXQo+PgplbmRvYmoKODggMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNTU5LjYyOSAxODguOTE5IDU2OS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgODcgMCBSCi9IIC9JCgo+PgplbmRvYmoKODkgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjk4OCA1NTkuNjI5IDU0MC4zNDggNTY5LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA4NyAwIFIKL0ggL0kKCj4+CmVuZG9iago5MCAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyOCAwIFIgL1hZWiA3Mi4wIDMwNS42IG51bGxdCj4+CmVuZG9iago5MSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMjguMCA1NDcuNjI5IDIxNi44NDEgNTU3LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA5MCAwIFIKL0ggL0kKCj4+CmVuZG9iago5MiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuOTg3IDU0Ny42MjkgNTQwLjM0NyA1NTcuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDkwIDAgUgovSCAvSQoKPj4KZW5kb2JqCjkzIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzI4IDAgUiAvWFlaIDcyLjAgMjY1LjYgbnVsbF0KPj4KZW5kb2JqCjk0IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEyOC4wIDUzNS42MjkgMjA5LjYxMiA1NDUuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDkzIDAgUgovSCAvSQoKPj4KZW5kb2JqCjk1IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy45ODcgNTM1LjYyOSA1NDAuMzQ3IDU0NS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgOTMgMCBSCi9IIC9JCgo+PgplbmRvYmoKOTYgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjggMCBSIC9YWVogNzIuMCAyMjUuNiBudWxsXQo+PgplbmRvYmoKOTcgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTI4LjAgNTIzLjYyOSAyMTMuMTMyIDUzMy42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgOTYgMCBSCi9IIC9JCgo+PgplbmRvYmoKOTggMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjk4NyA1MjMuNjI5IDU0MC4zNDcgNTMzLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA5NiAwIFIKL0ggL0kKCj4+CmVuZG9iago5OSAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyOCAwIFIgL1hZWiA3Mi4wIDE4NS42IG51bGxdCj4+CmVuZG9iagoxMDAgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTI4LjAgNTExLjYyOSAyMzIuMzkgNTIxLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA5OSAwIFIKL0ggL0kKCj4+CmVuZG9iagoxMDEgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjk4NyA1MTEuNjI5IDU0MC4zNDcgNTIxLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA5OSAwIFIKL0ggL0kKCj4+CmVuZG9iagoxMDIgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjggMCBSIC9YWVogNzIuMCAxNDUuNiBudWxsXQo+PgplbmRvYmoKMTAzIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEyOC4wIDQ5OS42MjkgMjEyLjcxNyA1MDkuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDEwMiAwIFIKL0ggL0kKCj4+CmVuZG9iagoxMDQgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjk4OCA0OTkuNjI5IDU0MC4zNDggNTA5LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxMDIgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTA1IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzMxIDAgUiAvWFlaIDcyLjAgNzIwLjAgbnVsbF0KPj4KZW5kb2JqCjEwNiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA4MC4wIDQ4Ny42MjkgMjA0Ljk3NiA0OTcuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDEwNSAwIFIKL0ggL0kKCj4+CmVuZG9iagoxMDcgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjYzOCA0ODcuNjI5IDUzOS45OTggNDk3LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxMDUgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTA4IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzMxIDAgUiAvWFlaIDcyLjAgNzAwLjggbnVsbF0KPj4KZW5kb2JqCjEwOSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA0NzUuNjI5IDE3My40MDggNDg1LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxMDggMCBSCi9IIC9JCgo+PgplbmRvYmoKMTEwIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy42MzggNDc1LjYyOSA1MzkuOTk4IDQ4NS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTA4IDAgUgovSCAvSQoKPj4KZW5kb2JqCjExMSAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFszMSAwIFIgL1hZWiA3Mi4wIDYyNi40IG51bGxdCj4+CmVuZG9iagoxMTIgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNDYzLjYyOSAxNjQuOTEzIDQ3My42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTExIDAgUgovSCAvSQoKPj4KZW5kb2JqCjExMyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuODA3IDQ2My42MjkgNTQwLjE2NyA0NzMuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDExMSAwIFIKL0ggL0kKCj4+CmVuZG9iagoxMTQgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMzEgMCBSIC9YWVogNzIuMCA1NTguMCBudWxsXQo+PgplbmRvYmoKMTE1IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDQ1MS42MjkgMjA5LjU1MiA0NjEuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDExNCAwIFIKL0ggL0kKCj4+CmVuZG9iagoxMTYgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjYzOCA0NTEuNjI5IDUzOS45OTggNDYxLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxMTQgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTE3IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzMxIDAgUiAvWFlaIDcyLjAgNDg5LjYgbnVsbF0KPj4KZW5kb2JqCjExOCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA0MzkuNjI5IDIyMS43OTQgNDQ5LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxMTcgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTE5IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy42MzggNDM5LjYyOSA1MzkuOTk4IDQ0OS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTE3IDAgUgovSCAvSQoKPj4KZW5kb2JqCjEyMCAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFszNyAwIFIgL1hZWiA3Mi4wIDcyMC4wIG51bGxdCj4+CmVuZG9iagoxMjEgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgODAuMCA0MjcuNjI5IDE0OS4zOSA0MzcuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDEyMCAwIFIKL0ggL0kKCj4+CmVuZG9iagoxMjIgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjYzOCA0MjcuNjI5IDUzOS45OTggNDM3LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxMjAgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTIzIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzM3IDAgUiAvWFlaIDcyLjAgNjc4LjggbnVsbF0KPj4KZW5kb2JqCjEyNCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA0MTUuNjI5IDE5OS4wMDYgNDI1LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxMjMgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTI1IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy42MzggNDE1LjYyOSA1MzkuOTk4IDQyNS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTIzIDAgUgovSCAvSQoKPj4KZW5kb2JqCjEyNiAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFszNyAwIFIgL1hZWiA3Mi4wIDYwMi40IG51bGxdCj4+CmVuZG9iagoxMjcgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNDAzLjYyOSAxOTQuNjQxIDQxMy42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTI2IDAgUgovSCAvSQoKPj4KZW5kb2JqCjEyOCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNjM4IDQwMy42MjkgNTM5Ljk5OCA0MTMuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDEyNiAwIFIKL0ggL0kKCj4+CmVuZG9iagoxMjkgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNDAgMCBSIC9YWVogNzIuMCA3MjAuMCBudWxsXQo+PgplbmRvYmoKMTMwIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDgwLjAgMzkxLjYyOSAxNDcuNjQ1IDQwMS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTI5IDAgUgovSCAvSQoKPj4KZW5kb2JqCjEzMSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuNjM4IDM5MS42MjkgNTM5Ljk5OCA0MDEuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDEyOSAwIFIKL0ggL0kKCj4+CmVuZG9iagoxMzIgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNDAgMCBSIC9YWVogNzIuMCA3MDAuOCBudWxsXQo+PgplbmRvYmoKMTMzIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDM3OS42MjkgMjQyLjg4NyAzODkuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDEzMiAwIFIKL0ggL0kKCj4+CmVuZG9iagoxMzQgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjYzOCAzNzkuNjI5IDUzOS45OTggMzg5LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxMzIgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTM1IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzQwIDAgUiAvWFlaIDcyLjAgNjAwLjQgbnVsbF0KPj4KZW5kb2JqCjEzNiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCAzNjcuNjI5IDI0NS4wNjMgMzc3LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxMzUgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTM3IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy42MzggMzY3LjYyOSA1MzkuOTk4IDM3Ny42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTM1IDAgUgovSCAvSQoKPj4KZW5kb2JqCjEzOCAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFs1MCAwIFIgL1hZWiA3Mi4wIDcyMC4wIG51bGxdCj4+CmVuZG9iagoxMzkgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgODAuMCAzNTUuNjI5IDE2MS43ODQgMzY1LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxMzggMCBSCi9IIC9JCgo+PgplbmRvYmoKMTQwIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy42MzggMzU1LjYyOSA1MzkuOTk4IDM2NS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTM4IDAgUgovSCAvSQoKPj4KZW5kb2JqCjE0MSAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFs1MCAwIFIgL1hZWiA3Mi4wIDY2Ni4xNzggbnVsbF0KPj4KZW5kb2JqCjE0MiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCAzNDMuNjI5IDM3OS44MTIgMzUzLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxNDEgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTQzIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy45ODcgMzQzLjYyOSA1NDAuMzQ3IDM1My42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTQxIDAgUgovSCAvSQoKPj4KZW5kb2JqCjE0NCAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFs1MCAwIFIgL1hZWiA3Mi4wIDYwMC4xNjEgbnVsbF0KPj4KZW5kb2JqCjE0NSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCAzMzEuNjI5IDQyMi42NjEgMzQxLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxNDQgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTQ2IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy42MzcgMzMxLjYyOSA1MzkuOTk3IDM0MS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTQ0IDAgUgovSCAvSQoKPj4KZW5kb2JqCjE0NyAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFs1MCAwIFIgL1hZWiA3Mi4wIDUzNC4xNDQgbnVsbF0KPj4KZW5kb2JqCjE0OCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCAzMTkuNjI5IDM5Ny44NDkgMzI5LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxNDcgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTQ5IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy42MzcgMzE5LjYyOSA1MzkuOTk3IDMyOS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTQ3IDAgUgovSCAvSQoKPj4KZW5kb2JqCjE1MCAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFs1MCAwIFIgL1hZWiA3Mi4wIDQ2OC4xMjcgbnVsbF0KPj4KZW5kb2JqCjE1MSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCAzMDcuNjI5IDQyMi4yMTMgMzE3LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxNTAgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTUyIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy42MzcgMzA3LjYyOSA1MzkuOTk3IDMxNy42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTUwIDAgUgovSCAvSQoKPj4KZW5kb2JqCjE1MyAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFs1MCAwIFIgL1hZWiA3Mi4wIDQwMi4xMSBudWxsXQo+PgplbmRvYmoKMTU0IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDI5NS42MjkgNDI0Ljg1MiAzMDUuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE1MyAwIFIKL0ggL0kKCj4+CmVuZG9iagoxNTUgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjYzNyAyOTUuNjI5IDUzOS45OTcgMzA1LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxNTMgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTU2IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzUwIDAgUiAvWFlaIDcyLjAgMzM2LjA5MyBudWxsXQo+PgplbmRvYmoKMTU3IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDI4My42MjkgMzk0LjE5NCAyOTMuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE1NiAwIFIKL0ggL0kKCj4+CmVuZG9iagoxNTggMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjYzNyAyODMuNjI5IDUzOS45OTcgMjkzLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxNTYgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTU5IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzUwIDAgUiAvWFlaIDcyLjAgMjcwLjA3NiBudWxsXQo+PgplbmRvYmoKMTYwIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDI3MS42MjkgNDE3LjExMyAyODEuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE1OSAwIFIKL0ggL0kKCj4+CmVuZG9iagoxNjEgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjYzNyAyNzEuNjI5IDUzOS45OTcgMjgxLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxNTkgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTYyIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzUwIDAgUiAvWFlaIDcyLjAgMjA0LjA1OSBudWxsXQo+PgplbmRvYmoKMTYzIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDI1OS42MjkgMzEyLjEzOSAyNjkuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE2MiAwIFIKL0ggL0kKCj4+CmVuZG9iagoxNjQgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjYzNyAyNTkuNjI5IDUzOS45OTcgMjY5LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxNjIgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTY1IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzUwIDAgUiAvWFlaIDcyLjAgMTM4LjA0MiBudWxsXQo+PgplbmRvYmoKMTY2IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDI0Ny42MjkgMzAzLjgxMyAyNTcuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE2NSAwIFIKL0ggL0kKCj4+CmVuZG9iagoxNjcgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjk4NyAyNDcuNjI5IDU0MC4zNDcgMjU3LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxNjUgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTY4IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzUzIDAgUiAvWFlaIDcyLjAgNzIwLjAgbnVsbF0KPj4KZW5kb2JqCjE2OSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCAyMzUuNjI5IDMxMy45MzIgMjQ1LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxNjggMCBSCi9IIC9JCgo+PgplbmRvYmoKMTcwIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy42MzcgMjM1LjYyOSA1MzkuOTk3IDI0NS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTY4IDAgUgovSCAvSQoKPj4KZW5kb2JqCjE3MSAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFs1MyAwIFIgL1hZWiA3Mi4wIDY2MS45MjYgbnVsbF0KPj4KZW5kb2JqCjE3MiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCAyMjMuNjI5IDIxOC41NzkgMjMzLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxNzEgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTczIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy42MzggMjIzLjYyOSA1MzkuOTk4IDIzMy42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTcxIDAgUgovSCAvSQoKPj4KZW5kb2JqCjE3NCAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFs1MyAwIFIgL1hZWiA3Mi4wIDU5Ny45NSBudWxsXQo+PgplbmRvYmoKMTc1IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDIxMS42MjkgNDIxLjIyOCAyMjEuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE3NCAwIFIKL0ggL0kKCj4+CmVuZG9iagoxNzYgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjk4NyAyMTEuNjI5IDU0MC4zNDcgMjIxLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxNzQgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTc3IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzUzIDAgUiAvWFlaIDcyLjAgNTMzLjk3NCBudWxsXQo+PgplbmRvYmoKMTc4IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDE5OS42MjkgMzkwLjA0MSAyMDkuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE3NyAwIFIKL0ggL0kKCj4+CmVuZG9iagoxNzkgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjk4OCAxOTkuNjI5IDU0MC4zNDggMjA5LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxNzcgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTgwIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzUzIDAgUiAvWFlaIDcyLjAgNDY5Ljk5OCBudWxsXQo+PgplbmRvYmoKMTgxIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDE4Ny42MjkgMzUzLjc4NSAxOTcuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE4MCAwIFIKL0ggL0kKCj4+CmVuZG9iagoxODIgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjk4NyAxODcuNjI5IDU0MC4zNDcgMTk3LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxODAgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTgzIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzUzIDAgUiAvWFlaIDcyLjAgNDA2LjAyMiBudWxsXQo+PgplbmRvYmoKMTg0IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDE3NS42MjkgMzk2LjkzNCAxODUuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE4MyAwIFIKL0ggL0kKCj4+CmVuZG9iagoxODUgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjk4NyAxNzUuNjI5IDU0MC4zNDcgMTg1LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxODMgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTg2IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzUzIDAgUiAvWFlaIDcyLjAgMzMwLjA0NiBudWxsXQo+PgplbmRvYmoKMTg3IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDE2My42MjkgNDE0LjI0NSAxNzMuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE4NiAwIFIKL0ggL0kKCj4+CmVuZG9iagoxODggMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjk4OCAxNjMuNjI5IDU0MC4zNDggMTczLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxODYgMCBSCi9IIC9JCgo+PgplbmRvYmoKMTg5IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzUzIDAgUiAvWFlaIDcyLjAgMjU0LjA3IG51bGxdCj4+CmVuZG9iagoxOTAgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgMTUxLjYyOSAzODguMzI4IDE2MS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTg5IDAgUgovSCAvSQoKPj4KZW5kb2JqCjE5MSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuOTg3IDE1MS42MjkgNTQwLjM0NyAxNjEuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE4OSAwIFIKL0ggL0kKCj4+CmVuZG9iagoxOTIgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNTMgMCBSIC9YWVogNzIuMCAxNzguMDk0IG51bGxdCj4+CmVuZG9iagoxOTMgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgMTM5LjYyOSAzNTMuNjQ2IDE0OS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTkyIDAgUgovSCAvSQoKPj4KZW5kb2JqCjE5NCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuOTg3IDEzOS42MjkgNTQwLjM0NyAxNDkuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE5MiAwIFIKL0ggL0kKCj4+CmVuZG9iagoxOTUgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNTMgMCBSIC9YWVogNzIuMCAxMTQuMTE4IG51bGxdCj4+CmVuZG9iagoxOTYgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgMTI3LjYyOSAzNjEuNjc0IDEzNy42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMTk1IDAgUgovSCAvSQoKPj4KZW5kb2JqCjE5NyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuOTg3IDEyNy42MjkgNTQwLjM0NyAxMzcuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE5NSAwIFIKL0ggL0kKCj4+CmVuZG9iagoxOTggMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNTYgMCBSIC9YWVogNzIuMCA3MDguMCBudWxsXQo+PgplbmRvYmoKMTk5IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDExNS42MjkgMzgzLjkyNiAxMjUuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDE5OCAwIFIKL0ggL0kKCj4+CmVuZG9iagoyMDAgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTM0LjE1NyAxMTUuNjI5IDU0MC41MTcgMTI1LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAxOTggMCBSCi9IIC9JCgo+PgplbmRvYmoKMjAxIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzU2IDAgUiAvWFlaIDcyLjAgNjQ1LjMzMiBudWxsXQo+PgplbmRvYmoKMjAyIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDEwMy42MjkgMzY0LjA4NCAxMTMuNjE5IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDIwMSAwIFIKL0ggL0kKCj4+CmVuZG9iagoyMDMgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjk4NyAxMDMuNjI5IDU0MC4zNDcgMTEzLjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyMDEgMCBSCi9IIC9JCgo+PgplbmRvYmoKMjA0IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzU2IDAgUiAvWFlaIDcyLjAgNTgyLjY2NCBudWxsXQo+PgplbmRvYmoKMjA1IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDkxLjYyOSA0MDEuODY1IDEwMS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjA0IDAgUgovSCAvSQoKPj4KZW5kb2JqCjIwNiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuOTg3IDkxLjYyOSA1NDAuMzQ3IDEwMS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjA0IDAgUgovSCAvSQoKPj4KZW5kb2JqCjIwNyAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFs1NiAwIFIgL1hZWiA3Mi4wIDUxOS45OTYgbnVsbF0KPj4KZW5kb2JqCjIwOCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA3OS42MjkgMzk3LjA4MyA4OS42MTkgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjA3IDAgUgovSCAvSQoKPj4KZW5kb2JqCjIwOSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuOTg4IDc5LjYyOSA1NDAuMzQ4IDg5LjYxOSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyMDcgMCBSCi9IIC9JCgo+PgplbmRvYmoKMjEwIDAgb2JqCjw8IC9MZW5ndGggMjExIDAg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IDAgUgo5MSAwIFIKOTIgMCBSCjk0IDAgUgo5NSAwIFIKOTcgMCBSCjk4IDAgUgoxMDAgMCBSCjEwMSAwIFIKMTAzIDAgUgoxMDQgMCBSCjEwNiAwIFIKMTA3IDAgUgoxMDkgMCBSCjExMCAwIFIKMTEyIDAgUgoxMTMgMCBSCjExNSAwIFIKMTE2IDAgUgoxMTggMCBSCjExOSAwIFIKMTIxIDAgUgoxMjIgMCBSCjEyNCAwIFIKMTI1IDAgUgoxMjcgMCBSCjEyOCAwIFIKMTMwIDAgUgoxMzEgMCBSCjEzMyAwIFIKMTM0IDAgUgoxMzYgMCBSCjEzNyAwIFIKMTM5IDAgUgoxNDAgMCBSCjE0MiAwIFIKMTQzIDAgUgoxNDUgMCBSCjE0NiAwIFIKMTQ4IDAgUgoxNDkgMCBSCjE1MSAwIFIKMTUyIDAgUgoxNTQgMCBSCjE1NSAwIFIKMTU3IDAgUgoxNTggMCBSCjE2MCAwIFIKMTYxIDAgUgoxNjMgMCBSCjE2NCAwIFIKMTY2IDAgUgoxNjcgMCBSCjE2OSAwIFIKMTcwIDAgUgoxNzIgMCBSCjE3MyAwIFIKMTc1IDAgUgoxNzYgMCBSCjE3OCAwIFIKMTc5IDAgUgoxODEgMCBSCjE4MiAwIFIKMTg0IDAgUgoxODUgMCBSCjE4NyAwIFIKMTg4IDAgUgoxOTAgMCBSCjE5MSAwIFIKMTkzIDAgUgoxOTQgMCBSCjE5NiAwIFIKMTk3IDAgUgoxOTkgMCBSCjIwMCAwIFIKMjAyIDAgUgoyMDMgMCBSCjIwNSAwIFIKMjA2IDAgUgoyMDggMCBSCjIwOSAwIFIKXQplbmRvYmoKMjEzIDAgb2JqCjw8CiAgL1Jlc291cmNlcyAxNCAwIFIKICAvVHlwZSAvUGFnZQogIC9NZWRpYUJveCBbMCAwIDYxMiA3OTJdCiAgL0Nyb3BCb3ggWzAgMCA2MTIgNzkyXQogIC9CbGVlZEJveCBbMCAwIDYxMiA3OTJdCiAgL1RyaW1Cb3ggWzAgMCA2MTIgNzkyXQogIC9QYXJlbnQgMTUgMCBSCiAgL0Fubm90cyAyMTIgMCBSCiAgL0NvbnRlbnRzIDIxMCAwIFIKPj4KZW5kb2JqCjIxNCAwIG9iago8PCAvTGVuZ3RoIDIxNSAwIFIgL0ZpbHRlciAv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VHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA3MDkuMDA1IDM4OS43MDMgNzE4Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyMzIgMCBSCi9IIC9JCgo+PgplbmRvYmoKMjM0IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy45ODcgNzA5LjAwNSA1NDAuMzQ3IDcxOC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjMyIDAgUgovSCAvSQoKPj4KZW5kb2JqCjIzNSAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFs1NiAwIFIgL1hZWiA3Mi4wIDM3MC42NiBudWxsXQo+PgplbmRvYmoKMjM2IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDY5Ny4wMDUgMzY2Ljg1MyA3MDYuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDIzNSAwIFIKL0ggL0kKCj4+CmVuZG9iagoyMzcgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjk4NyA2OTcuMDA1IDU0MC4zNDcgNzA2Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyMzUgMCBSCi9IIC9JCgo+PgplbmRvYmoKMjM4IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzU2IDAgUiAvWFlaIDcyLjAgMjk1Ljk5MiBudWxsXQo+PgplbmRvYmoKMjM5IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDY4NS4wMDUgMzU2LjQyNSA2OTQuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDIzOCAwIFIKL0ggL0kKCj4+CmVuZG9iagoyNDAgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjk4NyA2ODUuMDA1IDU0MC4zNDcgNjk0Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyMzggMCBSCi9IIC9JCgo+PgplbmRvYmoKMjQxIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzU2IDAgUiAvWFlaIDcyLjAgMjIxLjMyNCBudWxsXQo+PgplbmRvYmoKMjQyIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDY3My4wMDUgMzkyLjc5IDY4Mi45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjQxIDAgUgovSCAvSQoKPj4KZW5kb2JqCjI0MyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuOTg4IDY3My4wMDUgNTQwLjM0OCA2ODIuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDI0MSAwIFIKL0ggL0kKCj4+CmVuZG9iagoyNDQgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNTYgMCBSIC9YWVogNzIuMCAxNDYuNjU2IG51bGxdCj4+CmVuZG9iagoyNDUgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNjYxLjAwNSAzNzkuMjg0IDY3MC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjQ0IDAgUgovSCAvSQoKPj4KZW5kb2JqCjI0NiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuOTg3IDY2MS4wMDUgNTQwLjM0NyA2NzAuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDI0NCAwIFIKL0ggL0kKCj4+CmVuZG9iagoyNDcgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjE2IDAgUiAvWFlaIDcyLjAgNzIwLjAgbnVsbF0KPj4KZW5kb2JqCjI0OCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA2NDkuMDA1IDM2Ny4yNzIgNjU4Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyNDcgMCBSCi9IIC9JCgo+PgplbmRvYmoKMjQ5IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy45ODcgNjQ5LjAwNSA1NDAuMzQ3IDY1OC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjQ3IDAgUgovSCAvSQoKPj4KZW5kb2JqCjI1MCAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyMTYgMCBSIC9YWVogNzIuMCA2NjEuMzkgbnVsbF0KPj4KZW5kb2JqCjI1MSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA2MzcuMDA1IDM4Mi43NDIgNjQ2Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyNTAgMCBSCi9IIC9JCgo+PgplbmRvYmoKMjUyIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzNC4zMzcgNjM3LjAwNSA1NDAuNjk3IDY0Ni45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjUwIDAgUgovSCAvSQoKPj4KZW5kb2JqCjI1MyAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyMTYgMCBSIC9YWVogNzIuMCA1ODQuNzE3IG51bGxdCj4+CmVuZG9iagoyNTQgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNjI1LjAwNSAzNzkuODcyIDYzNC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjUzIDAgUgovSCAvSQoKPj4KZW5kb2JqCjI1NSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuOTg3IDYyNS4wMDUgNTQwLjM0NyA2MzQuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDI1MyAwIFIKL0ggL0kKCj4+CmVuZG9iagoyNTYgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjE2IDAgUiAvWFlaIDcyLjAgNTIwLjA0NCBudWxsXQo+PgplbmRvYmoKMjU3IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDYxMy4wMDUgMzUxLjQwNCA2MjIuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDI1NiAwIFIKL0ggL0kKCj4+CmVuZG9iagoyNTggMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjk4OCA2MTMuMDA1IDU0MC4zNDggNjIyLjk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyNTYgMCBSCi9IIC9JCgo+PgplbmRvYmoKMjU5IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzIxNiAwIFIgL1hZWiA3Mi4wIDQ1NS4zNzEgbnVsbF0KPj4KZW5kb2JqCjI2MCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA2MDEuMDA1IDQxNi4yNzcgNjEwLjk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyNTkgMCBSCi9IIC9JCgo+PgplbmRvYmoKMjYxIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy45ODggNjAxLjAwNSA1NDAuMzQ4IDYxMC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjU5IDAgUgovSCAvSQoKPj4KZW5kb2JqCjI2MiAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyMTYgMCBSIC9YWVogNzIuMCAzNzguNjk4IG51bGxdCj4+CmVuZG9iagoyNjMgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNTg5LjAwNSA0MDMuMjcgNTk4Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyNjIgMCBSCi9IIC9JCgo+PgplbmRvYmoKMjY0IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzNC4xNTcgNTg5LjAwNSA1NDAuNTE3IDU5OC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjYyIDAgUgovSCAvSQoKPj4KZW5kb2JqCjI2NSAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyMTYgMCBSIC9YWVogNzIuMCAzMTQuMDI1IG51bGxdCj4+CmVuZG9iagoyNjYgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNTc3LjAwNSA0MTYuNDI3IDU4Ni45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjY1IDAgUgovSCAvSQoKPj4KZW5kb2JqCjI2NyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuOTg3IDU3Ny4wMDUgNTQwLjM0NyA1ODYuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDI2NSAwIFIKL0ggL0kKCj4+CmVuZG9iagoyNjggMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjE2IDAgUiAvWFlaIDcyLjAgMjI1LjM1MiBudWxsXQo+PgplbmRvYmoKMjY5IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDU2NS4wMDUgMzc1Ljc2OCA1NzQuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDI2OCAwIFIKL0ggL0kKCj4+CmVuZG9iagoyNzAgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjk4NyA1NjUuMDA1IDU0MC4zNDcgNTc0Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyNjggMCBSCi9IIC9JCgo+PgplbmRvYmoKMjcxIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzIxNiAwIFIgL1hZWiA3Mi4wIDE0OC42NzkgbnVsbF0KPj4KZW5kb2JqCjI3MiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA1NTMuMDA1IDQxMi4xMzQgNTYyLjk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyNzEgMCBSCi9IIC9JCgo+PgplbmRvYmoKMjczIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy45ODcgNTUzLjAwNSA1NDAuMzQ3IDU2Mi45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjcxIDAgUgovSCAvSQoKPj4KZW5kb2JqCjI3NCAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyMTkgMCBSIC9YWVogNzIuMCA3MjAuMCBudWxsXQo+PgplbmRvYmoKMjc1IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDU0MS4wMDUgMzk4LjYyNyA1NTAuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDI3NCAwIFIKL0ggL0kKCj4+CmVuZG9iagoyNzYgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjk4OCA1NDEuMDA1IDU0MC4zNDggNTUwLjk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyNzQgMCBSCi9IIC9JCgo+PgplbmRvYmoKMjc3IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzIxOSAwIFIgL1hZWiA3Mi4wIDY1MC45MSBudWxsXQo+PgplbmRvYmoKMjc4IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDUyOS4wMDUgMzk5LjIxNSA1MzguOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDI3NyAwIFIKL0ggL0kKCj4+CmVuZG9iagoyNzkgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjk4NyA1MjkuMDA1IDU0MC4zNDcgNTM4Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyNzcgMCBSCi9IIC9JCgo+PgplbmRvYmoKMjgwIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzIxOSAwIFIgL1hZWiA3Mi4wIDU4OC4yMTMgbnVsbF0KPj4KZW5kb2JqCjI4MSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA1MTcuMDA1IDM1My4zNjcgNTI2Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyODAgMCBSCi9IIC9JCgo+PgplbmRvYmoKMjgyIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy45ODcgNTE3LjAwNSA1NDAuMzQ3IDUyNi45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjgwIDAgUgovSCAvSQoKPj4KZW5kb2JqCjI4MyAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyMTkgMCBSIC9YWVogNzIuMCA1MjUuNTE2IG51bGxdCj4+CmVuZG9iagoyODQgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNTA1LjAwNSAzOTYuNTE2IDUxNC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjgzIDAgUgovSCAvSQoKPj4KZW5kb2JqCjI4NSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuOTg3IDUwNS4wMDUgNTQwLjM0NyA1MTQuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDI4MyAwIFIKL0ggL0kKCj4+CmVuZG9iagoyODYgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjE5IDAgUiAvWFlaIDcyLjAgNDUwLjgxOSBudWxsXQo+PgplbmRvYmoKMjg3IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDQ5My4wMDUgMzYxLjI1NSA1MDIuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDI4NiAwIFIKL0ggL0kKCj4+CmVuZG9iagoyODggMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjk4OCA0OTMuMDA1IDU0MC4zNDggNTAyLjk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyODYgMCBSCi9IIC9JCgo+PgplbmRvYmoKMjg5IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzIxOSAwIFIgL1hZWiA3Mi4wIDM4OC4xMjIgbnVsbF0KPj4KZW5kb2JqCjI5MCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA0ODEuMDA1IDM4My41MDggNDkwLjk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyODkgMCBSCi9IIC9JCgo+PgplbmRvYmoKMjkxIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzNC4xNTcgNDgxLjAwNSA1NDAuNTE3IDQ5MC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjg5IDAgUgovSCAvSQoKPj4KZW5kb2JqCjI5MiAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyMTkgMCBSIC9YWVogNzIuMCAzMjUuNDI1IG51bGxdCj4+CmVuZG9iagoyOTMgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNDY5LjAwNSAzNjMuNjY2IDQ3OC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjkyIDAgUgovSCAvSQoKPj4KZW5kb2JqCjI5NCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuOTg3IDQ2OS4wMDUgNTQwLjM0NyA0NzguOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDI5MiAwIFIKL0ggL0kKCj4+CmVuZG9iagoyOTUgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjE5IDAgUiAvWFlaIDcyLjAgMjYyLjcyOCBudWxsXQo+PgplbmRvYmoKMjk2IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDQ1Ny4wMDUgNDAxLjQ0NiA0NjYuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDI5NSAwIFIKL0ggL0kKCj4+CmVuZG9iagoyOTcgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTMzLjk4NyA0NTcuMDA1IDU0MC4zNDcgNDY2Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyOTUgMCBSCi9IIC9JCgo+PgplbmRvYmoKMjk4IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzIxOSAwIFIgL1hZWiA3Mi4wIDIwMC4wMzEgbnVsbF0KPj4KZW5kb2JqCjI5OSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA0NDUuMDA1IDM5Ni42NjUgNDU0Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAyOTggMCBSCi9IIC9JCgo+PgplbmRvYmoKMzAwIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUzMy45ODcgNDQ1LjAwNSA1NDAuMzQ3IDQ1NC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMjk4IDAgUgovSCAvSQoKPj4KZW5kb2JqCjMwMSAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyMTkgMCBSIC9YWVogNzIuMCAxMTMuMzM0IG51bGxdCj4+CmVuZG9iagozMDIgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNDMzLjAwNSAzNTYuMDA2IDQ0Mi45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMzAxIDAgUgovSCAvSQoKPj4KZW5kb2JqCjMwMyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MzMuOTg4IDQzMy4wMDUgNTQwLjM0OCA0NDIuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDMwMSAwIFIKL0ggL0kKCj4+CmVuZG9iagozMDQgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjIyIDAgUiAvWFlaIDcyLjAgNzA4LjAgbnVsbF0KPj4KZW5kb2JqCjMwNSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA0MjEuMDA1IDM5Mi4zNDcgNDMwLjk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAzMDQgMCBSCi9IIC9JCgo+PgplbmRvYmoKMzA2IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUyNy42MjggNDIxLjAwNSA1NDAuMzQ4IDQzMC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMzA0IDAgUgovSCAvSQoKPj4KZW5kb2JqCjMwNyAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyMjIgMCBSIC9YWVogNzIuMCA2MzAuNjY5IG51bGxdCj4+CmVuZG9iagozMDggMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNDA5LjAwNSAzNzguODQxIDQxOC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMzA3IDAgUgovSCAvSQoKPj4KZW5kb2JqCjMwOSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MjcuNjI4IDQwOS4wMDUgNTQwLjM0OCA0MTguOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDMwNyAwIFIKL0ggL0kKCj4+CmVuZG9iagozMTAgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjIyIDAgUiAvWFlaIDcyLjAgNTUzLjMzOCBudWxsXQo+PgplbmRvYmoKMzExIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDM5Ny4wMDUgMzY2LjgyOCA0MDYuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDMxMCAwIFIKL0ggL0kKCj4+CmVuZG9iagozMTIgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTI3LjYyOCAzOTcuMDA1IDU0MC4zNDggNDA2Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAzMTAgMCBSCi9IIC9JCgo+PgplbmRvYmoKMzEzIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzIyMiAwIFIgL1hZWiA3Mi4wIDQ4OC4wMDcgbnVsbF0KPj4KZW5kb2JqCjMxNCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCAzODUuMDA1IDM3OS40MjggMzk0Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAzMTMgMCBSCi9IIC9JCgo+PgplbmRvYmoKMzE1IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUyNy42MjggMzg1LjAwNSA1NDAuMzQ4IDM5NC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMzEzIDAgUgovSCAvSQoKPj4KZW5kb2JqCjMxNiAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyMjIgMCBSIC9YWVogNzIuMCA0MjIuNjc2IG51bGxdCj4+CmVuZG9iagozMTcgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgMzczLjAwNSA0MTcuMzE3IDM4Mi45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMzE2IDAgUgovSCAvSQoKPj4KZW5kb2JqCjMxOCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MjcuMjc4IDM3My4wMDUgNTM5Ljk5OCAzODIuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDMxNiAwIFIKL0ggL0kKCj4+CmVuZG9iagozMTkgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjIyIDAgUiAvWFlaIDcyLjAgMzU3LjM0NSBudWxsXQo+PgplbmRvYmoKMzIwIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDM2MS4wMDUgMzg2LjEzIDM3MC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMzE5IDAgUgovSCAvSQoKPj4KZW5kb2JqCjMyMSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MjcuMjc4IDM2MS4wMDUgNTM5Ljk5OCAzNzAuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDMxOSAwIFIKL0ggL0kKCj4+CmVuZG9iagozMjIgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjIyIDAgUiAvWFlaIDcyLjAgMjkyLjAxNCBudWxsXQo+PgplbmRvYmoKMzIzIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDM0OS4wMDUgMzQ5Ljg3NCAzNTguOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDMyMiAwIFIKL0ggL0kKCj4+CmVuZG9iagozMjQgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTI3LjI3OCAzNDkuMDA1IDUzOS45OTggMzU4Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAzMjIgMCBSCi9IIC9JCgo+PgplbmRvYmoKMzI1IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzIyMiAwIFIgL1hZWiA3Mi4wIDIyNi42ODMgbnVsbF0KPj4KZW5kb2JqCjMyNiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCAzMzcuMDA1IDM5My4wMjMgMzQ2Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAzMjUgMCBSCi9IIC9JCgo+PgplbmRvYmoKMzI3IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUyNy4yNzggMzM3LjAwNSA1MzkuOTk4IDM0Ni45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMzI1IDAgUgovSCAvSQoKPj4KZW5kb2JqCjMyOCAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyMjIgMCBSIC9YWVogNzIuMCAxNDkuMzUyIG51bGxdCj4+CmVuZG9iagozMjkgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgMzI1LjAwNSA0MTAuMzM0IDMzNC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMzI4IDAgUgovSCAvSQoKPj4KZW5kb2JqCjMzMCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MjcuMjc4IDMyNS4wMDUgNTM5Ljk5OCAzMzQuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDMyOCAwIFIKL0ggL0kKCj4+CmVuZG9iagozMzEgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjI1IDAgUiAvWFlaIDcyLjAgNzIwLjAgbnVsbF0KPj4KZW5kb2JqCjMzMiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCAzMTMuMDA1IDM4NC40MTcgMzIyLjk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAzMzEgMCBSCi9IIC9JCgo+PgplbmRvYmoKMzMzIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUyNy4yNzggMzEzLjAwNSA1MzkuOTk4IDMyMi45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMzMxIDAgUgovSCAvSQoKPj4KZW5kb2JqCjMzNCAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyMjUgMCBSIC9YWVogNzIuMCA2NTAuOTEgbnVsbF0KPj4KZW5kb2JqCjMzNSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCAzMDEuMDA1IDM0OS43MzUgMzEwLjk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAzMzQgMCBSCi9IIC9JCgo+PgplbmRvYmoKMzM2IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUyNy4yNzggMzAxLjAwNSA1MzkuOTk4IDMxMC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMzM0IDAgUgovSCAvSQoKPj4KZW5kb2JqCjMzNyAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyMjUgMCBSIC9YWVogNzIuMCA1ODguMjEzIG51bGxdCj4+CmVuZG9iagozMzggMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgMjg5LjAwNSAzNTcuNzYzIDI5OC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMzM3IDAgUgovSCAvSQoKPj4KZW5kb2JqCjMzOSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MjcuMjc4IDI4OS4wMDUgNTM5Ljk5OCAyOTguOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDMzNyAwIFIKL0ggL0kKCj4+CmVuZG9iagozNDAgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjI1IDAgUiAvWFlaIDcyLjAgNTI1LjUxNiBudWxsXQo+PgplbmRvYmoKMzQxIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDI3Ny4wMDUgMzgwLjAxNSAyODYuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDM0MCAwIFIKL0ggL0kKCj4+CmVuZG9iagozNDIgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTI3LjQ0OCAyNzcuMDA1IDU0MC4xNjggMjg2Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAzNDAgMCBSCi9IIC9JCgo+PgplbmRvYmoKMzQzIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzIyNSAwIFIgL1hZWiA3Mi4wIDQ2Mi44MTkgbnVsbF0KPj4KZW5kb2JqCjM0NCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCAyNjUuMDA1IDM2MC4xNzMgMjc0Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAzNDMgMCBSCi9IIC9JCgo+PgplbmRvYmoKMzQ1IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUyNy4yNzggMjY1LjAwNSA1MzkuOTk4IDI3NC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMzQzIDAgUgovSCAvSQoKPj4KZW5kb2JqCjM0NiAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyMjUgMCBSIC9YWVogNzIuMCA0MDAuMTIyIG51bGxdCj4+CmVuZG9iagozNDcgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgMjUzLjAwNSAzOTcuOTU0IDI2Mi45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMzQ2IDAgUgovSCAvSQoKPj4KZW5kb2JqCjM0OCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MjcuMjc4IDI1My4wMDUgNTM5Ljk5OCAyNjIuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDM0NiAwIFIKL0ggL0kKCj4+CmVuZG9iagozNDkgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjI1IDAgUiAvWFlaIDcyLjAgMzM3LjQyNSBudWxsXQo+PgplbmRvYmoKMzUwIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDI0MS4wMDUgMzkzLjE3MiAyNTAuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDM0OSAwIFIKL0ggL0kKCj4+CmVuZG9iagozNTEgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTI3LjI3OCAyNDEuMDA1IDUzOS45OTggMjUwLjk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAzNDkgMCBSCi9IIC9JCgo+PgplbmRvYmoKMzUyIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzIyNSAwIFIgL1hZWiA3Mi4wIDI1MC43MjggbnVsbF0KPj4KZW5kb2JqCjM1MyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCAyMjkuMDA1IDM4NS43OTIgMjM4Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAzNTIgMCBSCi9IIC9JCgo+PgplbmRvYmoKMzU0IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUyNy4yNzggMjI5LjAwNSA1MzkuOTk4IDIzOC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMzUyIDAgUgovSCAvSQoKPj4KZW5kb2JqCjM1NSAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyMjUgMCBSIC9YWVogNzIuMCAxODguMDMxIG51bGxdCj4+CmVuZG9iagozNTYgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgMjE3LjAwNSAzNjIuOTQyIDIyNi45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMzU1IDAgUgovSCAvSQoKPj4KZW5kb2JqCjM1NyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MjcuMjc4IDIxNy4wMDUgNTM5Ljk5OCAyMjYuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDM1NSAwIFIKL0ggL0kKCj4+CmVuZG9iagozNTggMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjI1IDAgUiAvWFlaIDcyLjAgMTEzLjMzNCBudWxsXQo+PgplbmRvYmoKMzU5IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDIwNS4wMDUgMzUyLjUxNCAyMTQuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDM1OCAwIFIKL0ggL0kKCj4+CmVuZG9iagozNjAgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTI3LjI3OCAyMDUuMDA1IDUzOS45OTggMjE0Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAzNTggMCBSCi9IIC9JCgo+PgplbmRvYmoKMzYxIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzIyOCAwIFIgL1hZWiA3Mi4wIDY5Ni4wIG51bGxdCj4+CmVuZG9iagozNjIgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgMTkzLjAwNSAzODguODc5IDIwMi45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMzYxIDAgUgovSCAvSQoKPj4KZW5kb2JqCjM2MyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MjcuMjc4IDE5My4wMDUgNTM5Ljk5OCAyMDIuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDM2MSAwIFIKL0ggL0kKCj4+CmVuZG9iagozNjQgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjI4IDAgUiAvWFlaIDcyLjAgNjE5Ljk5OCBudWxsXQo+PgplbmRvYmoKMzY1IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDE4MS4wMDUgMzc1LjM3MyAxOTAuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDM2NCAwIFIKL0ggL0kKCj4+CmVuZG9iagozNjYgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTI3LjI3OCAxODEuMDA1IDUzOS45OTggMTkwLjk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAzNjQgMCBSCi9IIC9JCgo+PgplbmRvYmoKMzY3IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzIyOCAwIFIgL1hZWiA3Mi4wIDU0My45OTYgbnVsbF0KPj4KZW5kb2JqCjM2OCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCAxNjkuMDA1IDM2My4zNjEgMTc4Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAzNjcgMCBSCi9IIC9JCgo+PgplbmRvYmoKMzY5IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUyNy4yNzggMTY5LjAwNSA1MzkuOTk4IDE3OC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMzY3IDAgUgovSCAvSQoKPj4KZW5kb2JqCjM3MCAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyMjggMCBSIC9YWVogNzIuMCA0NzkuOTk0IG51bGxdCj4+CmVuZG9iagozNzEgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgMTU3LjAwNSAzNzguODMxIDE2Ni45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMzcwIDAgUgovSCAvSQoKPj4KZW5kb2JqCjM3MiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MjcuNjI4IDE1Ny4wMDUgNTQwLjM0OCAxNjYuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDM3MCAwIFIKL0ggL0kKCj4+CmVuZG9iagozNzMgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjI4IDAgUiAvWFlaIDcyLjAgNDAzLjk5MiBudWxsXQo+PgplbmRvYmoKMzc0IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDE0NS4wMDUgMzc1Ljk2MSAxNTQuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDM3MyAwIFIKL0ggL0kKCj4+CmVuZG9iagozNzUgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTI3LjI3OCAxNDUuMDA1IDUzOS45OTggMTU0Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAzNzMgMCBSCi9IIC9JCgo+PgplbmRvYmoKMzc2IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzIyOCAwIFIgL1hZWiA3Mi4wIDMzOS45OSBudWxsXQo+PgplbmRvYmoKMzc3IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDEzMy4wMDUgMzQ3LjQ5MyAxNDIuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDM3NiAwIFIKL0ggL0kKCj4+CmVuZG9iagozNzggMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTI3LjI3OCAxMzMuMDA1IDUzOS45OTggMTQyLjk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAzNzYgMCBSCi9IIC9JCgo+PgplbmRvYmoKMzc5IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzIyOCAwIFIgL1hZWiA3Mi4wIDI3NS45ODggbnVsbF0KPj4KZW5kb2JqCjM4MCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCAxMjEuMDA1IDQyNC45MjggMTMwLjk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSAzNzkgMCBSCi9IIC9JCgo+PgplbmRvYmoKMzgxIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUyNy42MjggMTIxLjAwNSA1NDAuMzQ4IDEzMC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMzc5IDAgUgovSCAvSQoKPj4KZW5kb2JqCjM4MiAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyMjggMCBSIC9YWVogNzIuMCAyMTEuOTg2IG51bGxdCj4+CmVuZG9iagozODMgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgMTA5LjAwNSAzNTcuNDg1IDExOC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMzgyIDAgUgovSCAvSQoKPj4KZW5kb2JqCjM4NCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MjcuNjI4IDEwOS4wMDUgNTQwLjM0OCAxMTguOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDM4MiAwIFIKL0ggL0kKCj4+CmVuZG9iagozODUgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjI4IDAgUiAvWFlaIDcyLjAgMTM1Ljk4NCBudWxsXQo+PgplbmRvYmoKMzg2IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDk3LjAwNSAzOTIuNzI2IDEwNi45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMzg1IDAgUgovSCAvSQoKPj4KZW5kb2JqCjM4NyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MjcuNjI4IDk3LjAwNSA1NDAuMzQ4IDEwNi45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgMzg1IDAgUgovSCAvSQoKPj4KZW5kb2JqCjM4OCAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyMzEgMCBSIC9YWVogNzIuMCA3MjAuMCBudWxsXQo+PgplbmRvYmoKMzg5IDAgb2JqCjw8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ODUgMCBSCjI4NyAwIFIKMjg4IDAgUgoyOTAgMCBSCjI5MSAwIFIKMjkzIDAgUgoyOTQgMCBSCjI5NiAwIFIKMjk3IDAgUgoyOTkgMCBSCjMwMCAwIFIKMzAyIDAgUgozMDMgMCBSCjMwNSAwIFIKMzA2IDAgUgozMDggMCBSCjMwOSAwIFIKMzExIDAgUgozMTIgMCBSCjMxNCAwIFIKMzE1IDAgUgozMTcgMCBSCjMxOCAwIFIKMzIwIDAgUgozMjEgMCBSCjMyMyAwIFIKMzI0IDAgUgozMjYgMCBSCjMyNyAwIFIKMzI5IDAgUgozMzAgMCBSCjMzMiAwIFIKMzMzIDAgUgozMzUgMCBSCjMzNiAwIFIKMzM4IDAgUgozMzkgMCBSCjM0MSAwIFIKMzQyIDAgUgozNDQgMCBSCjM0NSAwIFIKMzQ3IDAgUgozNDggMCBSCjM1MCAwIFIKMzUxIDAgUgozNTMgMCBSCjM1NCAwIFIKMzU2IDAgUgozNTcgMCBSCjM1OSAwIFIKMzYwIDAgUgozNjIgMCBSCjM2MyAwIFIKMzY1IDAgUgozNjYgMCBSCjM2OCAwIFIKMzY5IDAgUgozNzEgMCBSCjM3MiAwIFIKMzc0IDAgUgozNzUgMCBSCjM3NyAwIFIKMzc4IDAgUgozODAgMCBSCjM4MSAwIFIKMzgzIDAgUgozODQgMCBSCjM4NiAwIFIKMzg3IDAgUgozODkgMCBSCjM5MCAwIFIKMzkyIDAgUgozOTMgMCBSCl0KZW5kb2JqCjM5NyAwIG9iago8PAogIC9SZXNvdXJjZXMgMTQgMCBSCiAgL1R5cGUgL1BhZ2UKICAvTWVkaWFCb3ggWzAgMCA2MTIgNzkyXQogIC9Dcm9wQm94IFswIDAgNjEyIDc5Ml0KICAvQmxlZWRCb3ggWzAgMCA2MTIgNzkyXQogIC9UcmltQm94IFswIDAgNjEyIDc5Ml0KICAvUGFyZW50IDE1IDAgUgogIC9Bbm5vdHMgMzk2IDAgUgogIC9Db250ZW50cyAzOTQgMCBSCj4+CmVuZG9iagozOTggMCBvYmoKPDwgL0xlbmd0aCAzOTkgMCBSIC9GaWx0ZXIgL0ZsYXRlRGVjb2RlID4+CnN0cmVhbQp4nO1ZzY7jNgy+5yn0AusVqX9gESCTSYr2VnSAHhZ7atH2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ii9idyW6y02oSTvC2Qm1RPuaCJ5fffrdhPrx9ted1Ui7vfNaoKtOqSW7N9lNQs3b1F1lwnu7n9+AvSXteZgnjwVQKeoYz3LzjX/hqUB8obfiOi1lwSz5kvfDrJn5Q6cUv9BbdBqSnydhor7shTNUF+/Gt8RZ6KDGGOQuzyGPXEnmaHIo8zSZsDhNJM8AXgrvelLk9w+P6ye8CmVuZHN0cmVhbQplbmRvYmoKNDA4IDAgb2JqCjgxOAplbmRvYmoKNDA5IDAgb2JqCjw8CiAgL1Jlc291cmNlcyAxNCAwIFIKICAvVHlwZSAvUGFnZQogIC9NZWRpYUJveCBbMCAwIDYxMiA3OTJdCiAgL0Nyb3BCb3ggWzAgMCA2MTIgNzkyXQogIC9CbGVlZEJveCBbMCAwIDYxMiA3OTJdCiAgL1RyaW1Cb3ggWzAgMCA2MTIgNzkyXQogIC9QYXJlbnQgMTUgMCBSCiAgL0NvbnRlbnRzIDQwNyAwIFIKPj4KZW5kb2JqCjQxMCAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyMzEgMCBSIC9YWVogNzIuMCA1NzYuMjEzIG51bGxdCj4+CmVuZG9iago0MTEgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNzA5LjAwNSAzOTIuMDI4IDcxOC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNDEwIDAgUgovSCAvSQoKPj4KZW5kb2JqCjQxMiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MjcuNjI4IDcwOS4wMDUgNTQwLjM0OCA3MTguOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDQxMCAwIFIKL0ggL0kKCj4+CmVuZG9iago0MTMgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjMxIDAgUiAvWFlaIDcyLjAgNTAxLjUxNiBudWxsXQo+PgplbmRvYmoKNDE0IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDY5Ny4wMDUgMzY1LjM3NCA3MDYuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDQxMyAwIFIKL0ggL0kKCj4+CmVuZG9iago0MTUgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTI3LjYyOCA2OTcuMDA1IDU0MC4zNDggNzA2Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA0MTMgMCBSCi9IIC9JCgo+PgplbmRvYmoKNDE2IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzIzMSAwIFIgL1hZWiA3Mi4wIDQzOC44MTkgbnVsbF0KPj4KZW5kb2JqCjQxNyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA2ODUuMDA1IDQwNS41NjUgNjk0Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA0MTYgMCBSCi9IIC9JCgo+PgplbmRvYmoKNDE4IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUyNy42MjggNjg1LjAwNSA1NDAuMzQ4IDY5NC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNDE2IDAgUgovSCAvSQoKPj4KZW5kb2JqCjQxOSAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyMzEgMCBSIC9YWVogNzIuMCAzNzYuMTIyIG51bGxdCj4+CmVuZG9iago0MjAgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNjczLjAwNSAzOTMuNDAzIDY4Mi45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNDE5IDAgUgovSCAvSQoKPj4KZW5kb2JqCjQyMSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MjcuNjI4IDY3My4wMDUgNTQwLjM0OCA2ODIuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDQxOSAwIFIKL0ggL0kKCj4+CmVuZG9iago0MjIgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjMxIDAgUiAvWFlaIDcyLjAgMzEzLjQyNSBudWxsXQo+PgplbmRvYmoKNDIzIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDY2MS4wMDUgMzkxLjkxOSA2NzAuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDQyMiAwIFIKL0ggL0kKCj4+CmVuZG9iago0MjQgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTI3LjYyOCA2NjEuMDA1IDU0MC4zNDggNjcwLjk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA0MjIgMCBSCi9IIC9JCgo+PgplbmRvYmoKNDI1IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzIzMSAwIFIgL1hZWiA3Mi4wIDI1MC43MjggbnVsbF0KPj4KZW5kb2JqCjQyNiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA2NDkuMDA1IDM3MC41NTMgNjU4Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA0MjUgMCBSCi9IIC9JCgo+PgplbmRvYmoKNDI3IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUyNy42MjggNjQ5LjAwNSA1NDAuMzQ4IDY1OC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNDI1IDAgUgovSCAvSQoKPj4KZW5kb2JqCjQyOCAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFsyMzEgMCBSIC9YWVogNzIuMCAxNzYuMDMxIG51bGxdCj4+CmVuZG9iago0MjkgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNjM3LjAwNSAzNjAuMTI1IDY0Ni45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNDI4IDAgUgovSCAvSQoKPj4KZW5kb2JqCjQzMCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MjcuNjI4IDYzNy4wMDUgNTQwLjM0OCA2NDYuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDQyOCAwIFIKL0ggL0kKCj4+CmVuZG9iago0MzEgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbMjMxIDAgUiAvWFlaIDcyLjAgMTEzLjMzNCBudWxsXQo+PgplbmRvYmoKNDMyIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDYyNS4wMDUgMzk2LjQ5MSA2MzQuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDQzMSAwIFIKL0ggL0kKCj4+CmVuZG9iago0MzMgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTI3LjYyOCA2MjUuMDA1IDU0MC4zNDggNjM0Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA0MzEgMCBSCi9IIC9JCgo+PgplbmRvYmoKNDM0IDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzQwMCAwIFIgL1hZWiA3Mi4wIDcwOC4wIG51bGxdCj4+CmVuZG9iago0MzUgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNjEzLjAwNSAzODYuNDQyIDYyMi45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNDM0IDAgUgovSCAvSQoKPj4KZW5kb2JqCjQzNiAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MjcuOTc4IDYxMy4wMDUgNTQwLjY5OCA2MjIuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDQzNCAwIFIKL0ggL0kKCj4+CmVuZG9iago0MzcgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNDAwIDAgUiAvWFlaIDcyLjAgNjMxLjYgbnVsbF0KPj4KZW5kb2JqCjQzOCAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA2MDEuMDA1IDM4My41NzIgNjEwLjk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA0MzcgMCBSCi9IIC9JCgo+PgplbmRvYmoKNDM5IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUyNy42MjggNjAxLjAwNSA1NDAuMzQ4IDYxMC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNDM3IDAgUgovSCAvSQoKPj4KZW5kb2JqCjQ0MCAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFs0MDAgMCBSIC9YWVogNzIuMCA1NjcuMiBudWxsXQo+PgplbmRvYmoKNDQxIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDU4OS4wMDUgMzcyLjM4NSA1OTguOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDQ0MCAwIFIKL0ggL0kKCj4+CmVuZG9iago0NDIgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTI3LjI3OCA1ODkuMDA1IDUzOS45OTggNTk4Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA0NDAgMCBSCi9IIC9JCgo+PgplbmRvYmoKNDQzIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzQwMCAwIFIgL1hZWiA3Mi4wIDQ5MC44IG51bGxdCj4+CmVuZG9iago0NDQgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgMTA0LjAgNTc3LjAwNSAzNjguMTAyIDU4Ni45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNDQzIDAgUgovSCAvSQoKPj4KZW5kb2JqCjQ0NSAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyA1MjcuNDQ4IDU3Ny4wMDUgNTQwLjE2OCA1ODYuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDQ0MyAwIFIKL0ggL0kKCj4+CmVuZG9iago0NDYgMCBvYmoKPDwgL1R5cGUgL0FjdGlvbgovUyAvR29UbwovRCBbNDAwIDAgUiAvWFlaIDcyLjAgNDE0LjQgbnVsbF0KPj4KZW5kb2JqCjQ0NyAwIG9iago8PCAvVHlwZSAvQW5ub3QKL1N1YnR5cGUgL0xpbmsKL1JlY3QgWyAxMDQuMCA1NjUuMDA1IDM3OS40MDcgNTc0Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA0NDYgMCBSCi9IIC9JCgo+PgplbmRvYmoKNDQ4IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUyNy4yNzggNTY1LjAwNSA1MzkuOTk4IDU3NC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNDQ2IDAgUgovSCAvSQoKPj4KZW5kb2JqCjQ0OSAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFs0MDAgMCBSIC9YWVogNzIuMCAzMzguMCBudWxsXQo+PgplbmRvYmoKNDUwIDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDEwNC4wIDU1My4wMDUgMjAyLjQ3OCA1NjIuOTk1IF0KL0MgWyAwIDAgMCBdCi9Cb3JkZXIgWyAwIDAgMCBdCi9BIDQ0OSAwIFIKL0ggL0kKCj4+CmVuZG9iago0NTEgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgNTI3LjI3OCA1NTMuMDA1IDUzOS45OTggNTYyLjk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA0NDkgMCBSCi9IIC9JCgo+PgplbmRvYmoKNDUyIDAgb2JqCjw8IC9UeXBlIC9BY3Rpb24KL1MgL0dvVG8KL0QgWzQwMyAwIFIgL1hZWiA3Mi4wIDcyMC4wIG51bGxdCj4+CmVuZG9iago0NTMgMCBvYmoKPDwgL1R5cGUgL0Fubm90Ci9TdWJ0eXBlIC9MaW5rCi9SZWN0IFsgODAuMCA1NDEuMDA1IDEzMC4xMjkgNTUwLjk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA0NTIgMCBSCi9IIC9JCgo+PgplbmRvYmoKNDU0IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUyNy4yNzggNTQxLjAwNSA1MzkuOTk4IDU1MC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNDUyIDAgUgovSCAvSQoKPj4KZW5kb2JqCjQ1NSAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFs0MDYgMCBSIC9YWVogNzIuMCA3MjAuMCBudWxsXQo+PgplbmRvYmoKNDU2IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDgwLjAgNTI5LjAwNSAxMTkuMDYgNTM4Ljk5NSBdCi9DIFsgMCAwIDAgXQovQm9yZGVyIFsgMCAwIDAgXQovQSA0NTUgMCBSCi9IIC9JCgo+PgplbmRvYmoKNDU3IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAovU3VidHlwZSAvTGluawovUmVjdCBbIDUyNy4yNzggNTI5LjAwNSA1MzkuOTk4IDUzOC45OTUgXQovQyBbIDAgMCAwIF0KL0JvcmRlciBbIDAgMCAwIF0KL0EgNDU1IDAgUgovSCAvSQoKPj4KZW5kb2JqCjQ1OCAwIG9iago8PCAvVHlwZSAvQWN0aW9uCi9TIC9Hb1RvCi9EIFs0MDYgMCBSIC9YWVogNzIuMCA2NzguOCBudWxsXQo+PgplbmRvYmoKNDU5IDAgb2JqCjw8IC9UeXBlIC9Bbm5vdAov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CmVuZG9iago0OTUgMCBvYmoKPDwKICAvVHlwZSAvQ2F0YWxvZwogIC9QYWdlcyAxNSAwIFIKICAvTGFuZyAoZW4pCiAgL01ldGFkYXRhIDUgMCBSCiAgL1BhZ2VMYWJlbHMgNDk2IDAgUgo+PgplbmRvYmoKMTQgMCBvYmoKPDwKICAvRm9udCA8PAogIC9GMTYgNDczIDAgUgogIC9GMTUgNDgyIDAgUgogIC9GMTkgNDkxIDAgUgo+PgogIC9Qcm9jU2V0IFsvUERGIC9JbWFnZUIgL0ltYWdlQyAvVGV4dF0KICAvWE9iamVjdCA8PAogIC9JbTEgNyAwIFIKICAvSW0yIDkgMCBSCiAgL0ltMyAxNiAwIFIKICAvSW00IDE4IDAgUgo+PgogIC9Db2xvclNwYWNlIDw8IC9EZWZhdWx0UkdCIDQgMCBSID4+Cj4+CmVuZG9iago0OTYgMCBvYmoKPDwgL051bXMgWzAgPDwgL1MgL0QgPj4gMSA8PCAvUyAvciAvU3QgMiA+PiAyIDw8IC9TIC9yIC9TdCAzID4+IDMgPDwgL1MgL3IgL1N0IDQgPj4gNCA8PCAvUyAvciAvU3QgNSA+PiA1IDw8IC9TIC9yIC9TdCA2ID4+IDYgPDwgL1MgL0QgPj4gMTAgPDwgL1MgL0QgL1N0IDUgPj4gMTMgPDwgL1MgL0QgL1N0IDggPj4gMTkgPDwgL1MgL0QgL1N0IDE0ID4+XSA+PgplbmRvYmoKeHJlZgowIDQ5NwowMDAwMDAwMDAwIDY1NTM1IGYgCjAwMDAwMDAwMTUgMDAwMDAgbiAKMDAwMDAwMDE0NSAwMDAwMCBuIAowMDAwMDAyNjgzIDAwMDAwIG4gCjAwMDAwMDI3MDMgMDAwMDAgbiAKMDAwMDAwMjczNiAwMDAwMCBuIAowMDAwMDAzNjgzIDAwMDAwIG4gCjAwMDAwMDM3MDIgMDAwMDAgbiAKMDAwMDA1MjIyNyAwMDAwMCBuIAowMDAwMDUyMjQ4IDAwMDAwIG4gCjAwMDAxMDU1MDggMDAwMDAgbiAKMDAwMDEwNTUzMCAwMDAwMCBuIAowMDAwMTA2MDM2IDAwMDAwIG4gCjAwMDAxMDYwNTYgMDAwMDAgbiAKMDAwMDI5ODAxNyAwMDAwMCBuIAowMDAwMjk3NjgwIDAwMDAwIG4gCjAwMDAxMDYyNTAgMDAwMDAgbiAKMDAwMDExMjQyMSAwMDAwMCBuIAowMDAwMTEyNDQyIDAwMDAwIG4gCjAwMDAxMTk2MjIgMDAwMDAgbiAKMDAwMDExOTY0MyAwMDAwMCBuIAowMDAwMTE5NzI4IDAwMDAwIG4gCjAwMDAxMTk4NjYgMDAwMDAgbiAKMDAwMDEyMDgzOCAwMDAwMCBuIAowMDAwMTIwODU4IDAwMDAwIG4gCjAwMDAxMjA4ODUgMDAwMDAgbiAKMDAwMDEyMTA5NiAwMDAwMCBuIAowMDAwMTIyNjE4IDAwMDAwIG4gCjAwMDAxMjI2MzkgMDAwMDAgbiAKMDAwMDEyMjgzMyAwMDAwMCBuIAowMDAwMTIzNjg1IDAwMDAwIG4gCjAwMDAxMjM3MDUgMDAwMDAgbiAKMDAwMDEyMzg5OSAwMDAwMCBuIAowMDAwMTIzOTk0IDAwMDAwIG4gCjAwMDAxMjQxMzAgMDAwMDAgbiAKMDAwMDEyNTM2NCAwMDAwMCBuIAowMDAwMTI1Mzg1IDAwMDAwIG4gCjAwMDAxMjU0MTIgMDAwMDAgbiAKMDAwMDEyNTYyMyAwMDAwMCBuIAowMDAwMTI3NDQ5IDAwMDAwIG4gCjAwMDAxMjc0NzAgMDAwMDAgbiAKMDAwMDEyNzY2NCAwMDAwMCBuIAowMDAwMTI3NzQyIDAwMDAwIG4gCjAwMDAxMjc4NzkgMDAwMDAgbiAKMDAwMDEyODAxOSAwMDAwMCBuIAowMDAwMTI4OTQwIDAwMDAwIG4gCjAwMDAxMjg5NjAgMDAwMDAgbiAKMDAwMDEyODk5NCAwMDAwMCBuIAowMDAwMTI5MjA1IDAwMDAwIG4gCjAwMDAxMzA0ODQgMDAwMDAgbiAKMDAwMDEzMDUwNSAwMDAwMCBuIAowMDAwMTMwNjk5IDAwMDAwIG4gCjAwMDAxMzI0NTEgMDAwMDAgbiAKMDAwMDEzMjQ3MiAwMDAwMCBuIAowMDAwMTMyNjY2IDAwMDAwIG4gCjAwMDAxMzQzOTkgMDAwMDAgbiAKMDAwMDEzNDQyMCAwMDAwMCBuIAowMDAwMTM0NjE0IDAwMDAwIG4gCjAwMDAxMzQ2OTIgMDAwMDAgbiAKMDAwMDEzNDgyOCAwMDAwMCBuIAowMDAwMTM0OTY1IDAwMDAwIG4gCjAwMDAxMzUwNDMgMDAwMDAgbiAKMDAwMDEzNTE4MCAwMDAwMCBuIAowMDAwMTM1MzIwIDAwMDAwIG4gCjAwMDAxMzUzOTggMDAwMDAgbiAKMDAwMDEzNTUzNiAwMDAwMCBuIAowMDAwMTM1Njc2IDAwMDAwIG4gCjAwMDAxMzU3NTQgMDAwMDAgbiAKMDAwMDEzNTg5MiAwMDAwMCBuIAowMDAwMTM2MDMyIDAwMDAwIG4gCjAwMDAxMzYxMTAgMDAwMDAgbiAKMDAwMDEzNjI0OCAwMDAwMCBuIAowMDAwMTM2Mzg4IDAwMDAwIG4gCjAwMDAxMzY0NjYgMDAwMDAgbiAKMDAwMDEzNjYwNCAwMDAwMCBuIAowMDAwMTM2NzQ0IDAwMDAwIG4gCjAwMDAxMzY4MjIgMDAwMDAgbiAKMDAwMDEzNjk2MCAwMDAwMCBuIAowMDAwMTM3MTAwIDAwMDAwIG4gCjAwMDAxMzcxNzggMDAwMDAgbiAKMDAwMDEzNzMxNiAwMDAwMCBuIAowMDAwMTM3NDU2IDAwMDAwIG4gCjAwMDAxMzc1MzQgMDAwMDAgbiAKMDAwMDEzNzY3MiAwMDAwMCBuIAowMDAwMTM3ODEyIDAwMDAwIG4gCjAwMDAxMzc4OTAgMDAwMDAgbiAKMDAwMDEzODAyOCAwMDAwMCBuIAowMDAwMTM4MTY4IDAwMDAwIG4gCjAwMDAxMzgyNDYgMDAwMDAgbiAKMDAwMDEzODM4NCAwMDAwMCBuIAowMDAwMTM4NTI0IDAwMDAwIG4gCjAwMDAxMzg2MDIgMDAwMDAgbiAKMDAwMDEzODc0MCAwMDAwMCBuIAowMDAwMTM4ODgwIDAwMDAwIG4gCjAwMDAxMzg5NTggMDAwMDAgbiAKMDAwMDEzOTA5NiAwMDAwMCBuIAowMDAwMTM5MjM2IDAwMDAwIG4gCjAwMDAxMzkzMTQgMDAwMDAgbiAKMDAwMDEzOTQ1MiAwMDAwMCBuIAowMDAwMTM5NTkyIDAwMDAwIG4gCjAwMDAxMzk2NzAgMDAwMDAgbiAKMDAwMDEzOTgwOCAwMDAwMCBuIAowMDAwMTM5OTQ5IDAwMDAwIG4gCjAwMDAxNDAwMjggMDAwMDAgbiAKMDAwMDE0MDE2OCAwMDAwMCBuIAowMDAwMTQwMzEwIDAwMDAwIG4gCjAwMDAxNDAzODkgMDAwMDAgbiAKMDAwMDE0MDUyOCAwMDAwMCBuIAowMDAwMTQwNjcwIDAwMDAwIG4gCjAwMDAxNDA3NDkgMDAwMDAgbiAKMDAwMDE0MDg4OSAwMDAwMCBuIAowMDAwMTQxMDMxIDAwMDAwIG4gCjAwMDAxNDExMTAgMDAwMDAgbiAKMDAwMDE0MTI1MCAwMDAwMCBuIAowMDAwMTQxMzkyIDAwMDAwIG4gCjAwMDAxNDE0NzEgMDAwMDAgbiAKMDAwMDE0MTYxMSAwMDAwMCBuIAowMDAwMTQxNzUzIDAwMDAwIG4gCjAwMDAxNDE4MzIgMDAwMDAgbiAKMDAwMDE0MTk3MiAwMDAwMCBuIAowMDAwMTQyMTE0IDAwMDAwIG4gCjAwMDAxNDIxOTMgMDAwMDAgbiAKMDAwMDE0MjMzMSAwMDAwMCBuIAowMDAwMTQyNDczIDAwMDAwIG4gCjAwMDAxNDI1NTIgMDAwMDAgbiAKMDAwMDE0MjY5MiAwMDAwMCBuIAowMDAwMTQyODM0IDAwMDAwIG4gCjAwMDAxNDI5MTMgMDAwMDAgbiAKMDAwMDE0MzA1MyAwMDAwMCBuIAowMDAwMTQzMTk1IDAwMDAwIG4gCjAwMDAxNDMyNzQgMDAwMDAgbiAKMDAwMDE0MzQxMyAwMDAwMCBuIAowMDAwMTQzNTU1IDAwMDAwIG4gCjAwMDAxNDM2MzQgMDAwMDAgbiAKMDAwMDE0Mzc3NCAwMDAwMCBuIAowMDAwMTQzOTE2IDAwMDAwIG4gCjAwMDAxNDM5OTUgMDAwMDAgbiAKMDAwMDE0NDEzNSAwMDAwMCBuIAowMDAwMTQ0Mjc3IDAwMDAwIG4gCjAwMDAxNDQzNTYgMDAwMDAgbiAKMDAwMDE0NDQ5NSAwMDAwMCBuIAowMDAwMTQ0NjM3IDAwMDAwIG4gCjAwMDAxNDQ3MTggMDAwMDAgbiAKMDAwMDE0NDg1OCAwMDAwMCBuIAowMDAwMTQ1MDAwIDAwMDAwIG4gCjAwMDAxNDUwODEgMDAwMDAgbiAKMDAwMDE0NTIyMSAwMDAwMCBuIAowMDAwMTQ1MzYzIDAwMDAwIG4gCjAwMDAxNDU0NDQgMDAwMDAgbiAKMDAwMDE0NTU4NCAwMDAwMCBuIAowMDAwMTQ1NzI2IDAwMDAwIG4gCjAwMDAxNDU4MDcgMDAwMDAgbiAKMDAwMDE0NTk0NyAwMDAwMCBuIAowMDAwMTQ2MDg5IDAwMDAwIG4gCjAwMDAxNDYxNjkgMDAwMDAgbiAKMDAwMDE0NjMwOSAwMDAwMCBuIAowMDAwMTQ2NDUxIDAwMDAwIG4gCjAwMDAxNDY1MzIgMDAwMDAgbiAKMDAwMDE0NjY3MiAwMDAwMCBuIAowMDAwMTQ2ODE0IDAwMDAwIG4gCjAwMDAxNDY4OTUgMDAwMDAgbiAKMDAwMDE0NzAzNSAwMDAwMCBuIAowMDAwMTQ3MTc3IDAwMDAwIG4gCjAwMDAxNDcyNTggMDAwMDAgbiAKMDAwMDE0NzM5OCAwMDAwMCBuIAowMDAwMTQ3NTQwIDAwMDAwIG4gCjAwMDAxNDc2MjEgMDAwMDAgbiAKMDAwMDE0Nzc2MSAwMDAwMCBuIAowMDAwMTQ3OTAzIDAwMDAwIG4gCjAwMDAxNDc5ODIgMDAwMDAgbiAKMDAwMDE0ODEyMiAwMDAwMCBuIAowMDAwMTQ4MjY0IDAwMDAwIG4gCjAwMDAxNDgzNDUgMDAwMDAgbiAKMDAwMDE0ODQ4NSAwMDAwMCBuIAowMDAwMTQ4NjI3IDAwMDAwIG4gCjAwMDAxNDg3MDcgMDAwMDAgbiAKMDAwMDE0ODg0NyAwMDAwMCBuIAowMDAwMTQ4OTg5IDAwMDAwIG4gCjAwMDAxNDkwNzAgMDAwMDAgbiAKMDAwMDE0OTIxMCAwMDAwMCBuIAowMDAwMTQ5MzUyIDAwMDAwIG4gCjAwMDAxNDk0MzMgMDAwMDAgbiAKMDAwMDE0OTU3MyAwMDAwMCBuIAowMDAwMTQ5NzE1IDAwMDAwIG4gCjAwMDAxNDk3OTYgMDAwMDAgbiAKMDAwMDE0OTkzNiAwMDAwMCBuIAowMDAwMTUwMDc4IDAwMDAwIG4gCjAwMDAxNTAxNTkgMDAwMDAgbiAKMDAwMDE1MDI5OSAwMDAwMCBuIAowMDAwMTUwNDQxIDAwMDAwIG4gCjAwMDAxNTA1MjEgMDAwMDAgbiAKMDAwMDE1MDY2MSAwMDAwMCBuIAowMDAwMTUwODAzIDAwMDAwIG4gCjAwMDAxNTA4ODQgMDAwMDAgbiAKMDAwMDE1MTAyNCAwMDAwMCBuIAowMDAwMTUxMTY2IDAwMDAwIG4gCjAwMDAxNTEyNDcgMDAwMDAgbiAKMDAwMDE1MTM4NyAwMDAwMCBuIAowMDAwMTUxNTI5IDAwMDAwIG4gCjAwMDAxNTE2MDggMDAwMDAgbiAKMDAwMDE1MTc0OCAwMDAwMCBuIAowMDAwMTUxODkwIDAwMDAwIG4gCjAwMDAxNTE5NzEgMDAwMDAgbiAKMDAwMDE1MjExMSAwMDAwMCBuIAowMDAwMTUyMjUzIDAwMDAwIG4gCjAwMDAxNTIzMzQgMDAwMDAgbiAKMDAwMDE1MjQ3MyAwMDAwMCBuIAowMDAwMTUyNjE0IDAwMDAwIG4gCjAwMDAxNTI2OTUgMDAwMDAgbiAKMDAwMDE1MjgzMyAwMDAwMCBuIAowMDAwMTUyOTczIDAwMDAwIG4gCjAwMDAxODA3MTYgMDAwMDAgbiAKMDAwMDE4MDczOSAwMDAwMCBuIAowMDAwMTgxNTQ4IDAwMDAwIG4gCjAwMDAxODE3NjIgMDAwMDAgbiAKMDAwMDE4MzU4MSAwMDAwMCBuIAowMDAwMTgzNjAzIDAwMDAwIG4gCjAwMDAxODM3OTkgMDAwMDAgbiAKMDAwMDE4NTU3MyAwMDAwMCBuIAowMDAwMTg1NTk1IDAwMDAwIG4gCjAwMDAxODU3OTEgMDAwMDAgbiAKMDAwMDE4NzUwOCAwMDAwMCBuIAowMDAwMTg3NTMwIDAwMDAwIG4gCjAwMDAxODc3MjYgMDAwMDAgbiAKMDAwMDE4OTM3MSAwMDAwMCBuIAowMDAwMTg5MzkzIDAwMDAwIG4gCjAwMDAxODk1ODkgMDAwMDAgbiAKMDAwMDE5MTIyOSAwMDAwMCBuIAowMDAwMTkxMjUxIDAwMDAwIG4gCjAwMDAxOTE0NDcgMDAwMDAgbiAKMDAwMDE5MzE4NyAwMDAwMCBuIAowMDAwMTkzMjA5IDAwMDAwIG4gCjAwMDAxOTM0MDUgMDAwMDAgbiAKMDAwMDE5MzQ4NiAwMDAwMCBuIAowMDAwMTkzNjI2IDAwMDAwIG4gCjAwMDAxOTM3NjggMDAwMDAgbiAKMDAwMDE5Mzg0OCAwMDAwMCBuIAowMDAwMTkzOTg4IDAwMDAwIG4gCjAwMDAxOTQxMzAgMDAwMDAgbiAKMDAwMDE5NDIxMSAwMDAwMCBuIAowMDAwMTk0MzUxIDAwMDAwIG4gCjAwMDAxOTQ0OTMgMDAwMDAgbiAKMDAwMDE5NDU3NCAwMDAwMCBuIAowMDAwMTk0NzEzIDAwMDAwIG4gCjAwMDAxOTQ4NTUgMDAwMDAgbiAKMDAwMDE5NDkzNiAwMDAwMCBuIAowMDAwMTk1MDc2IDAwMDAwIG4gCjAwMDAxOTUyMTggMDAwMDAgbiAKMDAwMDE5NTI5OCAwMDAwMCBuIAowMDAwMTk1NDM4IDAwMDAwIG4gCjAwMDAxOTU1ODAgMDAwMDAgbiAKMDAwMDE5NTY2MSAwMDAwMCBuIAowMDAwMTk1ODAxIDAwMDAwIG4gCjAwMDAxOTU5NDMgMDAwMDAgbiAKMDAwMDE5NjAyNSAwMDAwMCBuIAowMDAwMTk2MTY1IDAwMDAwIG4gCjAwMDAxOTYzMDcgMDAwMDAgbiAKMDAwMDE5NjM4OSAwMDAwMCBuIAowMDAwMTk2NTI5IDAwMDAwIG4gCjAwMDAxOTY2NzEgMDAwMDAgbiAKMDAwMDE5Njc1MyAwMDAwMCBuIAowMDAwMTk2ODkzIDAwMDAwIG4gCjAwMDAxOTcwMzUgMDAwMDAgbiAKMDAwMDE5NzExNyAwMDAwMCBuIAowMDAwMTk3MjU2IDAwMDAwIG4gCjAwMDAxOTczOTggMDAwMDAgbiAKMDAwMDE5NzQ4MCAwMDAwMCBuIAowMDAwMTk3NjIwIDAwMDAwIG4gCjAwMDAxOTc3NjIgMDAwMDAgbiAKMDAwMDE5Nzg0NCAwMDAwMCBuIAowMDAwMTk3OTg0IDAwMDAwIG4gCjAwMDAxOTgxMjYgMDAwMDAgbiAKMDAwMDE5ODIwOCAwMDAwMCBuIAowMDAwMTk4MzQ4IDAwMDAwIG4gCjAwMDAxOTg0OTAgMDAwMDAgbiAKMDAwMDE5ODU3MCAwMDAwMCBuIAowMDAwMTk4NzEwIDAwMDAwIG4gCjAwMDAxOTg4NTIgMDAwMDAgbiAKMDAwMDE5ODkzMyAwMDAwMCBuIAowMDAwMTk5MDczIDAwMDAwIG4gCjAwMDAxOTkyMTUgMDAwMDAgbiAKMDAwMDE5OTI5NyAwMDAwMCBuIAowMDAwMTk5NDM3IDAwMDAwIG4gCjAwMDAxOTk1NzkgMDAwMDAgbiAKMDAwMDE5OTY2MSAwMDAwMCBuIAowMDAwMTk5ODAxIDAwMDAwIG4gCjAwMDAxOTk5NDMgMDAwMDAgbiAKMDAwMDIwMDAyNSAwMDAwMCBuIAowMDAwMjAwMTY1IDAwMDAwIG4gCjAwMDAyMDAzMDcgMDAwMDAgbiAKMDAwMDIwMDM4OSAwMDAwMCBuIAowMDAwMjAwNTI5IDAwMDAwIG4gCjAwMDAyMDA2NzEgMDAwMDAgbiAKMDAwMDIwMDc1MyAwMDAwMCBuIAowMDAwMjAwODkzIDAwMDAwIG4gCjAwMDAyMDEwMzUgMDAwMDAgbiAKMDAwMDIwMTExNyAwMDAwMCBuIAowMDAwMjAxMjU3IDAwMDAwIG4gCjAwMDAyMDEzOTkgMDAwMDAgbiAKMDAwMDIwMTQ4MSAwMDAwMCBuIAowMDAwMjAxNjIxIDAwMDAwIG4gCjAwMDAyMDE3NjMgMDAwMDAgbiAKMDAwMDIwMTg0NSAwMDAwMCBuIAowMDAwMjAxOTg1IDAwMDAwIG4gCjAwMDAyMDIxMjcgMDAwMDAgbiAKMDAwMDIwMjIwNyAwMDAwMCBuIAowMDAwMjAyMzQ3IDAwMDAwIG4gCjAwMDAyMDI0ODkgMDAwMDAgbiAKMDAwMDIwMjU3MSAwMDAwMCBuIAowMDAwMjAyNzExIDAwMDAwIG4gCjAwMDAyMDI4NTMgMDAwMDAgbiAKMDAwMDIwMjkzNSAwMDAwMCBuIAowMDAwMjAzMDc1IDAwMDAwIG4gCjAwMDAyMDMyMTcgMDAwMDAgbiAKMDAwMDIwMzI5OSAwMDAwMCBuIAowMDAwMjAzNDM5IDAwMDAwIG4gCjAwMDAyMDM1ODEgMDAwMDAgbiAKMDAwMDIwMzY2MyAwMDAwMCBuIAowMDAwMjAzODAzIDAwMDAwIG4gCjAwMDAyMDM5NDUgMDAwMDAgbiAKMDAwMDIwNDAyNyAwMDAwMCBuIAowMDAwMjA0MTY2IDAwMDAwIG4gCjAwMDAyMDQzMDggMDAwMDAgbiAKMDAwMDIwNDM5MCAwMDAwMCBuIAowMDAwMjA0NTMwIDAwMDAwIG4gCjAwMDAyMDQ2NzIgMDAwMDAgbiAKMDAwMDIwNDc1NCAwMDAwMCBuIAowMDAwMjA0ODk0IDAwMDAwIG4gCjAwMDAyMDUwMzYgMDAwMDAgbiAKMDAwMDIwNTExOCAwMDAwMCBuIAowMDAwMjA1MjU4IDAwMDAwIG4gCjAwMDAyMDU0MDAgMDAwMDAgbiAKMDAwMDIwNTQ4MCAwMDAwMCBuIAowMDAwMjA1NjIwIDAwMDAwIG4gCjAwMDAyMDU3NjIgMDAwMDAgbiAKMDAwMDIwNTg0MyAwMDAwMCBuIAowMDAwMjA1OTgzIDAwMDAwIG4gCjAwMDAyMDYxMjUgMDAwMDAgbiAKMDAwMDIwNjIwNyAwMDAwMCBuIAowMDAwMjA2MzQ3IDAwMDAwIG4gCjAwMDAyMDY0ODkgMDAwMDAgbiAKMDAwMDIwNjU3MSAwMDAwMCBuIAowMDAwMjA2NzExIDAwMDAwIG4gCjAwMDAyMDY4NTMgMDAwMDAgbiAKMDAwMDIwNjkzNSAwMDAwMCBuIAowMDAwMjA3MDc1IDAwMDAwIG4gCjAwMDAyMDcyMTcgMDAwMDAgbiAKMDAwMDIwNzI5OSAwMDAwMCBuIAowMDAwMjA3NDM5IDAwMDAwIG4gCjAwMDAyMDc1ODEgMDAwMDAgbiAKMDAwMDIwNzY2MyAwMDAwMCBuIAowMDAwMjA3ODAzIDAwMDAwIG4gCjAwMDAyMDc5NDUgMDAwMDAgbiAKMDAwMDIwODAyNyAwMDAwMCBuIAowMDAwMjA4MTY3IDAwMDAwIG4gCjAwMDAyMDgzMDkgMDAwMDAgbiAKMDAwMDIwODM5MSAwMDAwMCBuIAowMDAwMjA4NTMxIDAwMDAwIG4gCjAwMDAyMDg2NzMgMDAwMDAgbiAKMDAwMDIwODc1NSAwMDAwMCBuIAowMDAwMjA4ODk1IDAwMDAwIG4gCjAwMDAyMDkwMzcgMDAwMDAgbiAKMDAwMDIwOTExNyAwMDAwMCBuIAowMDAwMjA5MjU3IDAwMDAwIG4gCjAwMDAyMDkzOTkgMDAwMDAgbiAKMDAwMDIwOTQ4MSAwMDAwMCBuIAowMDAwMjA5NjIxIDAwMDAwIG4gCjAwMDAyMDk3NjMgMDAwMDAgbiAKMDAwMDIwOTg0NSAwMDAwMCBuIAowMDAwMjA5OTg1IDAwMDAwIG4gCjAwMDAyMTAxMjcgMDAwMDAgbiAKMDAwMDIxMDIwOSAwMDAwMCBuIAowMDAwMjEwMzQ5IDAwMDAwIG4gCjAwMDAyMTA0OTEgMDAwMDAgbiAKMDAwMDIxMDU3MyAwMDAwMCBuIAowMDAwMjEwNzEzIDAwMDAwIG4gCjAwMDAyMTA4NTUgMDAwMDAgbiAKMDAwMDIxMDkzNiAwMDAwMCBuIAowMDAwMjExMDc2IDAwMDAwIG4gCjAwMDAyMTEyMTggMDAwMDAgbiAKMDAwMDIxMTMwMCAwMDAwMCBuIAowMDAwMjExNDQwIDAwMDAwIG4gCjAwMDAyMTE1ODIgMDAwMDAgbiAKMDAwMDIxMTY2NCAwMDAwMCBuIAowMDAwMjExODA0IDAwMDAwIG4gCjAwMDAyMTE5NDYgMDAwMDAgbiAKMDAwMDIxMjAyOCAwMDAwMCBuIAowMDAwMjEyMTY3IDAwMDAwIG4gCjAwMDAyMTIzMDggMDAwMDAgbiAKMDAwMDIxMjM4OCAwMDAwMCBuIAowMDAwMjEyNTI2IDAwMDAwIG4gCjAwMDAyMTI2NjYgMDAwMDAgbiAKMDAwMDIxMjc0NyAwMDAwMCBuIAowMDAwMjEyODg1IDAwMDAwIG4gCjAwMDAyMTMwMjUgMDAwMDAgbiAKMDAwMDIzMDA4NCAwMDAwMCBuIAowMDAwMjMwMTA3IDAwMDAwIG4gCjAwMDAyMzA5OTIgMDAwMDAgbiAKMDAwMDIzMTIwNiAwMDAwMCBuIAowMDAwMjMyNzMyIDAwMDAwIG4gCjAwMDAyMzI3NTQgMDAwMDAgbiAKMDAwMDIzMjk1MCAwMDAwMCBuIAowMDAwMjM0MTEyIDAwMDAwIG4gCjAwMDAyMzQxMzQgMDAwMDAgbiAKMDAwMDIzNDMzMCAwMDAwMCBuIAowMDAwMjM1NzU3IDAwMDAwIG4gCjAwMDAyMzU3NzkgMDAwMDAgbiAKMDAwMDIzNTk3NSAwMDAwMCBuIAowMDAwMjM2ODcxIDAwMDAwIG4gCjAwMDAyMzY4OTIgMDAwMDAgbiAKMDAwMDIzNzA4OCAwMDAwMCBuIAowMDAwMjM3MTcwIDAwMDAwIG4gCjAwMDAyMzczMTAgMDAwMDAgbiAKMDAwMDIzNzQ1MiAwMDAwMCBuIAowMDAwMjM3NTM0IDAwMDAwIG4gCjAwMDAyMzc2NzQgMDAwMDAgbiAKMDAwMDIzNzgxNiAwMDAwMCBuIAowMDAwMjM3ODk4IDAwMDAwIG4gCjAwMDAyMzgwMzggMDAwMDAgbiAKMDAwMDIzODE4MCAwMDAwMCBuIAowMDAwMjM4MjYyIDAwMDAwIG4gCjAwMDAyMzg0MDIgMDAwMDAgbiAKMDAwMDIzODU0NCAwMDAwMCBuIAowMDAwMjM4NjI2IDAwMDAwIG4gCjAwMDAyMzg3NjYgMDAwMDAgbiAKMDAwMDIzODkwOCAwMDAwMCBuIAowMDAwMjM4OTkwIDAwMDAwIG4gCjAwMDAyMzkxMzAgMDAwMDAgbiAKMDAwMDIzOTI3MiAwMDAwMCBuIAowMDAwMjM5MzU0IDAwMDAwIG4gCjAwMDAyMzk0OTQgMDAwMDAgbiAKMDAwMDIzOTYzNiAwMDAwMCBuIAowMDAwMjM5NzE4IDAwMDAwIG4gCjAwMDAyMzk4NTggMDAwMDAgbiAKMDAwMDI0MDAwMCAwMDAwMCBuIAowMDAwMjQwMDgwIDAwMDAwIG4gCjAwMDAyNDAyMjAgMDAwMDAgbiAKMDAwMDI0MDM2MiAwMDAwMCBuIAowMDAwMjQwNDQyIDAwMDAwIG4gCjAwMDAyNDA1ODIgMDAwMDAgbiAKMDAwMDI0MDcyNCAwMDAwMCBuIAowMDAwMjQwODA0IDAwMDAwIG4gCjAwMDAyNDA5NDQgMDAwMDAgbiAKMDAwMDI0MTA4NiAwMDAwMCBuIAowMDAwMjQxMTY2IDAwMDAwIG4gCjAwMDAyNDEzMDYgMDAwMDAgbiAKMDAwMDI0MTQ0OCAwMDAwMCBuIAowMDAwMjQxNTI4IDAwMDAwIG4gCjAwMDAyNDE2NjggMDAwMDAgbiAKMDAwMDI0MTgxMCAwMDAwMCBuIAowMDAwMjQxODkwIDAwMDAwIG4gCjAwMDAyNDIwMzAgMDAwMDAgbiAKMDAwMDI0MjE3MiAwMDAwMCBuIAowMDAwMjQyMjUyIDAwMDAwIG4gCjAwMDAyNDIzOTEgMDAwMDAgbiAKMDAwMDI0MjUzMyAwMDAwMCBuIAowMDAwMjQyNjEzIDAwMDAwIG4gCjAwMDAyNDI3NTEgMDAwMDAgbiAKMDAwMDI0Mjg5MyAwMDAwMCBuIAowMDAwMjQyOTczIDAwMDAwIG4gCjAwMDAyNDMxMTMgMDAwMDAgbiAKMDAwMDI0MzI1NSAwMDAwMCBuIAowMDAwMjQzMzM1IDAwMDAwIG4gCjAwMDAyNDM0NzQgMDAwMDAgbiAKMDAwMDI0MzYxNiAwMDAwMCBuIAowMDAwMjUyMzY0IDAwMDAwIG4gCjAwMDAyNTIzODYgMDAwMDAgbiAKMDAwMDI1MjY5NSAwMDAwMCBuIAowMDAwMjUyOTA5IDAwMDAwIG4gCjAwMDAyNTMxNzQgMDAwMDAgbiAKMDAwMDI2Nzg3OSAwMDAwMCBuIAowMDAwMjY3ODU2IDAwMDAwIG4gCjAwMDAyNjc5NzkgMDAwMDAgbiAKMDAwMDI2Nzk5OSAwMDAwMCBuIAowMDAwMjY4NjU0IDAwMDAwIG4gCjAwMDAyNjgxNjQgMDAwMDAgbiAKMDAwMDI2OTI0NCAwMDAwMCBuIAowMDAwMjY5MjY1IDAwMDAwIG4gCjAwMDAyNjk1MjUgMDAwMDAgbiAKMDAwMDI4NTU4MSAwMDAwMCBuIAowMDAwMjg1NTU4IDAwMDAwIG4gCjAwMDAyODU2ODYgMDAwMDAgbiAKMDAwMDI4NTcwNiAwMDAwMCBuIAowMDAwMjg2Mzk3IDAwMDAwIG4gCjAwMDAyODU4NjYgMDAwMDAgbiAKMDAwMDI4NzAzNiAwMDAwMCBuIAowMDAwMjg3MDU3IDAwMDAwIG4gCjAwMDAyODczMTkgMDAwMDAgbiAKMDAwMDI5NjU2MSAwMDAwMCBuIAowMDAwMjk2NTM5IDAwMDAwIG4gCjAwMDAyOTY2NTkgMDAwMDAgbiAKMDAwMDI5NjY3OSAwMDAwMCBuIAowMDAwMjk3MjA2IDAwMDAwIG4gCjAwMDAyOTY4NDMgMDAwMDAgbiAKMDAwMDI5NzY1OSAwMDAwMCBuIAowMDAwMjk3OTA4IDAwMDAwIG4gCjAwMDAyOTgyNDcgMDAwMDAgbiAKdHJhaWxlcgo8PAogIC9Sb290IDQ5NSAwIFIKICAvSW5mbyAxIDAgUgogIC9JRCBbPDVEQjc4NEI1MUQyRkY4RDEyRTBERDg0N0VEQTc5NkI1PiA8NURCNzg0QjUxRDJGRjhEMTJFMEREODQ3RURBNzk2QjU+XQogIC9TaXplIDQ5Nwo+PgpzdGFydHhyZWYKMjk4NDcwCiUlRU9GCg==